说实话,代码长了谁也受不了。项目大了,Vuex的State堆得跟洋葱似的,想在组件里拿点数据,就得用this.$store.state.moduleA.moduleB.someData,那叫一个累人。 不过这个问题有救,mapState帮大忙。咱们得先把它引进来,把洋葱一层层剥开。用的时候直接在computed里展开就行。要是怕名字撞车,给变量换个马甲也挺简单。 最重要的是带模块名的全局状态。以前得写this.$store.state.模块名.xxx,现在统一用mapState就舒服了,连写法都一模一样。 Getters这部分也挺让人头疼。以前全局的直接用this.$store.getters.xxx还行,要是模块带命名空间的就麻烦了。但有了mapGetters也能搞定,写法跟mapState一样。 Mutations和Actions这两个玩意也能简化。以前动不动就commit或dispatch长字符串,现在有了mapMutations和mapActions,直接把它们变成组件的methods就行。 参数自动传进去不用操心,模块名带不带全看namespace有没有开。为了防止重名,给方法起个别名准没错。 总之就是一句话:把长的路径变成短名字,代码立马清爽。模板里直接用{{xxx}},methods里也能直接this.新名字(),再也不用写那一堆层层嵌套的this.$store了。