参照根据:https://baijiahao.baidu.com/s?id=1618794879569468435&wfr=spider&for=pc
使用过vue.js,一定知道在vue中各个组件之间传值的痛苦,其实,在vue中我们可以使用vuex来保存我们需要管理的状态值,值一旦被修改,所有引用该值的地方就会自动更新,那么接下来我们就来学习一下vuex是如何修改状态值的
1.我们要新建一个vue项目(这里我就不详细讲解了,大家可以翻我之前的文章)
https://www.jianshu.com/p/9155be2c601f
2.项目创建后,然后安装vuex,使用命令:npm install vuex --save(安装vuex保存到本地)
npm install vuex --save
3.执行npm run dev 启动项目,正常的话然后我们会看到项目的启动页,
npm run dev
4.在项目的src目录下新建一个目录store,在该目录下新建一个index.js文件,我们用来创建vuex实例,然后在该文件中引入vue和vuex,创建Vuex.Store实例保存到变量store中,最后使用export default导出store(如果已有store,不必再新建)
image.png5.在main.js文件中引入该文件,在文件里面添加 import store from ‘./store’;,再在vue实例全局引入store对象;(如果已经引入,忽略本条)
这样vuex就安装好了,那么,我们的数据如何保存?
State:
vuex中的数据源,我们需要保存的数据就保存在这里,可以在页面通过 this.$store.state来获取我们定义的数据;
image.pngimage.png
这时候我们页面上就得到了这个count值1
Getters:
Getter相当于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算,这里我们可以通过定义vuex的Getter来获取,Getters 可以用于监听、state中的值的变化,返回计算后的结果
举例:
image.png再修改index.js文件如下,其中getters中的getStateCount方法接收一个参数state,这个参数就是我们用来保存数据的那个对象;
image.pngMutations:
数据我们在页面是获取到了,但是如果我们需要修改count值怎么办?如果需要修改store中的值唯一的方法就是提交mutation来修改,我们现在Hello World.vue文件中添加两个按钮,一个加1,一个减1;这里我们点击按钮调用addFun(执行加的方法)和reductionFun(执行减法的方法),然后在里面直接提交mutations中的方法修改值:
image.png修改index.js文件,添加mutations,在mutations中定义两个函数,用来对count加1和减1,这里定义的两个方法就是上面commit提交的两个方法如下:
image.png页面上点击+、- 按钮操作数据:
image.pngimage.png
网友评论