问题描述
vuex简介
vuex是vue项目中用于管理全局状态的插件,如果对状态二字不明了,就简单理解成全局变量即可.
全局状态管理方式有很多,千奇百怪,比如bus总线、自定义一个js文件等,感兴趣可以自行百度,不了解也没关系.不同的方法不利于代码阅读和管理,所以vuex统一了全局状态管理的方式。
解决方案
vuex创建和引用
自动创建和引用
在用脚手架vue-cli创建项目时(vue create xxx),如果已经选择了vuex,那么在项目src目录下会自动创建store文件夹,并自动引入项目中。
手动创建和引用
如果项目创建时没选vuex,来看一下配置步骤
1.在项目根目录下,执行 npm install vuex 下载插件
2.新建 src/store/index.js
3.编写基础代码
src/store/index.js
4.在main.js中,将vuex引入到项目中
vuex使用
在 src/store/index.js 文件中,我们只需要关注state、getters、mutations、actions、modules五个对象即可.
1.state 用于存放全局变量案例:
2.getters 用于在其他页面获取state中的对象,所以getters内放置的都是函数,用于返回state中的值。
类似与data和computed的关系。因为state中存放的全局变量不建议直接读取和修改。
案例:
在某个页面中获取name变量
3.mutations 用于修改state中全局变量的值,该操作是同步的案例:
在某个页面中修改name变量
4.actions 同样用于修改state中全局变量的值,但该操作是异步的,如果修改name变量的过程中有异步操作,需要放在这里。比如网络请求就是异步操作.
在某个页面中调用异步方式修改name变量
5.modules 如果想在项目中设置多个vuex对象,根据某种分类存放不同的全局变量,需要用到该属性,本项目中不使用,所以使用方法自行百度.
加入购物车
编写全局变量,保存商品信息
store/index.js
在商品详情页中的'加入购物车'点击事件中,调用mutations中的函数,将商品保存到全局变量中
查看打印结果
实习编辑:衡辉
稿件来源:深度学习与文旅应用实验室(DLETA)
联系客服