Vue Vuex解决重复的代码问题 简化代码

mapState简写

javascript 复制代码
$store.state.sum
$store.state.age
$store.state.num
....

这种这种方法取值,如果太多很麻烦,不便于维护

可以写出计算属性

html 复制代码
<h1>{{sum}}</h1>
....
javascript 复制代码
computed:{
sum(){return this.$store.state.sum }
},
....

这样提高了代码的可读性,但是值太多还是一样需要写很多的计算属性,这时候可以导入mapState来进行生成代码,这样大大的简化了代码,可读和维护性更高

html 复制代码
<h1>{{age}}</h1>
....
javascript 复制代码
import { mapState} from 'vuex'
//导入

computed:{

...mapState({ 

he:'sum',

// sum:'sum'

age:'age',

....
})

}

相当于

javascript 复制代码
sum(){return this.$store.state.sum }

//简化了很多

更简洁的写法

html 复制代码
<h1>{{age}}</h1>
....
javascript 复制代码
...mapState(['sum','age'])

sum age 一定需要和state里的名一样


mapGetters简写

和state一样

javascript 复制代码
import { mapState,mapGetters} from 'vuex'

mapMutations简写

javascript 复制代码
import { mapMutations } from 'vuex';

原始写法

javascript 复制代码
 add()
        { 
            this.$store.dispatch('addSum',1)
        }

简写

html 复制代码
<button @click="add(1)">加</button>  这里传参
javascript 复制代码
...mapMutations({add:'addSum'})
...mapMutations(['add'],'age')
//名字一样时这样使用

mapActions

javascript 复制代码
import {mapActions} from 'vuex'
html 复制代码
<button @click="addSum(1)">加</button>
javascript 复制代码
 ...mapActions(['addSum'])
相关推荐
用户479492835691522 分钟前
JavaScript 今天30 岁了,但连自己的名字都不属于自己
javascript
用户479492835691537 分钟前
Vite8来啦,告别 esbuild + Rollup,Vite 8 统一用 Rolldown 了
前端·javascript·vite
枫,为落叶40 分钟前
VueRouter前端路由
前端
踢球的打工仔40 分钟前
前端知识介绍
前端
草字1 小时前
uniapp 悬浮按钮支持可拖拽。可移动。
前端·javascript·uni-app
一位搞嵌入式的 genius1 小时前
Vue实例挂载:从原理到项目实践的全维度解析
前端·javascript·vue.js·前端框架
cindershade1 小时前
Vue 3 Keep-Alive 深度实践:从原理到最佳实践
vue.js·vue-router
waeng_luo1 小时前
[鸿蒙2025领航者闯关] 表单验证与用户输入处理最佳实践
开发语言·前端·鸿蒙·鸿蒙2025领航者闯关·鸿蒙6实战·开发者年度总结
0思必得01 小时前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具
m0_740043731 小时前
Vue Router中获取路由参数d两种方式:$route.query和$route.params
前端·javascript·vue.js