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'])
相关推荐
stoneship18 分钟前
Web项目减少资源加载失败白屏问题
前端
DaMu1 小时前
Cesium & Three.js 【移动端手游“户外大逃杀”】 还在“画页面的”前端开发小伙伴们,是时候该“在往前走一走”了!我们必须摆脱“画页面的”标签!
前端·gis
非专业程序员1 小时前
一文读懂Font文件
前端
Asort1 小时前
JavaScript 从零开始(七):函数编程入门——从定义到可重用代码的完整指南
前端·javascript
Johnny_FEer1 小时前
什么是 React 中的远程组件?
前端·react.js
真夜1 小时前
关于rngh手势与Slider组件手势与事件冲突解决问题记录
android·javascript·app
我是日安1 小时前
从零到一打造 Vue3 响应式系统 Day 10 - 为何 Effect 会被指数级触发?
前端·vue.js
知了一笑1 小时前
「AI」网站模版,效果如何?
前端·后端·产品
艾小码1 小时前
用了这么久React,你真的搞懂useEffect了吗?
前端·javascript·react.js