Vuex使用

VueX多组件共享数据

Vuex的使用,需要多个页面能修改/引用相同的数据,并且能够被修改的时候。比如:

添加进购物车当中的数据;在商品详情页将商品加入购物车,然后把商品数据存储在vuex当中,购物车页面需要根据vuex当中存储的数据来渲染页面。而且在购物车当中可以对数据进行更改(删除商品,修改商品属性)等等,修改完成后会重新渲染页面。

VueX原理

安装: Vuex npm i vuex 默认为4 修改版本 npm i vuex@3

vue2 用vuex3

vue3 用vuex4

         上图就是工作方式,由VC对象当中发出dispatch / commit 请求。

        VC对象挂载(一般情况下都是mounted)的时候,触发dispatch ,他有两个参数 ('方法名' , { })方法名是在action当中定义好的方法名,要用引号包裹住('方法名')。第二个参数是你传如action当中的参数,(比如添加进入购物车的商品对象),可以是一个,也可以是多个。一个不需要对象写法,多个需要对象写法。

        在action当中进行的是 逻辑判断 / 异步请求()。action当中的方法有两个参数(context, value)value就是VC对象挂在的时候传进来的数据。context就相当于一个mini版store。可以通过context获取getters 以及 state 当中的数据。context.commit('方法名', 参数)提交到mutation当中。

        在mutation当中进行数据的存储。mutation当中的方法有两个参数,state value,同样的value也是传进来的参数,state就是vuex当中存储数据的对象。对象当中设置属性来存储不同的数据。用法state.属性。

        getters就相当于一个 ‘ 计算属性 ’  ,它会根据数据的改变而重新计算你想要获取的数据(比如购物车当中的总价)。

        如果不需要进行逻辑判断或者异步任务请求,就可以直接在VC对象当中使用commit方法,直接提交到mutation当中。虽然上图中并未画出这条线,但是确实是真实存在的。

       

        注意:

        一般来讲,在action当中定义的方法名都是小写,而在mutation当中定义的方法名一般都是大写。相当于一种约定,希望各位能够养成良好的习惯。取值部分在另外一篇哦!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值