为了账号安全,请及时绑定邮箱和手机立即绑定

【vue】为什么要使用vuex而不是window.obj来维护全局的实例属性和方法呢

【vue】为什么要使用vuex而不是window.obj来维护全局的实例属性和方法呢

陪伴而非守候 2018-09-08 16:13:06
【vue】为什么要使用vuex而不是window.obj来维护全局的实例属性和方法呢?
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

vuex除了提供全局变量,它还能:

  • 抽象业务逻辑,减少重复代码;比如异步获取的数据,不需要每个地方都写请求接口的代码,只需要store.dispatch('actionName')

  • 统一数据来源;一个数据可能来自:1.服务端 2.web socket的推送 3.响应用户操作之后对数据执行的运算符操作;没有使用vuex,你要在不同的地方写这三种其一的获取/修改数据的代码,而使用vuex只需要一句store.dispatch('actionName')

要不要使用vuex,答案很明显啊!


查看完整回答
反对 回复 2018-09-28
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

那你为什么不用原生js开发 用vue呢?
下面就拿window.obj用开发举例

window.obj = {  
    count: 1,    
    todos: [
      { id: 1, text: '...', done: true },
      { id: 2, text: '...', done: false }
    ]}

如果要修改状态

//a组件
window.obj.count+=1;
//b组件
window.obj.count+=5;
//
c组件window.obj.count=10;

上面的方法肯定不行,在复杂的程序中 要封装成方法来修改
然后就有了registerdispatch
为了 devtools 便于追踪调试 vuex 做了自己的封装 Mutation commit 使得状态必须同步提交 在js中肯定会有异步 所以有了 Action dispatch用来异步操作

像上面的你会发现做着做着就封装成立vuex或者类似的状态管理


查看完整回答
反对 回复 2018-09-28
  • 2 回答
  • 0 关注
  • 2273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信