【vue】为什么要使用vuex而不是window.obj来维护全局的实例属性和方法呢?
2 回答
慕村225694
要不要使用
TA贡献1880条经验 获得超4个赞
vuex
除了提供全局变量,它还能:
抽象业务逻辑,减少重复代码;比如异步获取的数据,不需要每个地方都写请求接口的代码,只需要
store.dispatch('actionName')
统一数据来源;一个数据可能来自:1.服务端 2.
web socket
的推送 3.响应用户操作之后对数据执行的运算符操作;没有使用vuex
,你要在不同的地方写这三种其一的获取/修改数据的代码,而使用vuex
只需要一句store.dispatch('actionName')
要不要使用vuex
,答案很明显啊!
倚天杖
TA贡献1828条经验 获得超3个赞
那你为什么不用原生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;
上面的方法肯定不行,在复杂的程序中 要封装成方法来修改
然后就有了register
和dispatch
为了 devtools
便于追踪调试 vuex
做了自己的封装 Mutation
commit
使得状态必须同步提交 在js
中肯定会有异步 所以有了 Action
dispatch
用来异步操作
像上面的你会发现做着做着就封装成立vuex
或者类似的状态管理
添加回答
举报
0/150
提交
取消