Vuex简介
Vuex是做什么的
-
官方解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式
- 它采用 集中式存储管理 应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化
- Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能
-
状态管理到底是什么?
- 状态管理模式、集中式存储管理这些名词听起来就非常高大上,让人捉摸不透
- 其实,你可以简单的将其看成**
把需要多个组件共享的变量全部存储在一个对象里面** - 然后,将这个对象放在顶层的Vue实例中,让其他组件可以使用
- 那么,多个组件就可以共享这个对象中的所有变量属性了
-
等等,如果是这样的话,为什么官方还要专门出一个插件Vuex呢?难道我们不能自己封装一个对象来管理吗?
- 当然可以,只是我们要先想想VueJS带给我们最大的便利是什么呢?没错,就是响应式
- 如果你自己封装实现一个对象能不能保证它里面所有的属性做到响应式呢?当然也可以,只是自己封装可能稍微麻烦一些
- 不用怀疑,Vuex就是为了提供这样一个在多个组件间共享状态的插件,用它就可以了
管理什么状态呢
-
但是,有什么状态时需要我们在多个组件间共享的呢?
- 如果你做过大型开放,你一定遇到过多个状态,在多个界面间的共享问题
- 比如用户的登录状态、用户名称、头像、地理位置信息等等
- 比如商品的收藏、购物车中的物品等等
- 这些状态信息,我们都可以放在统一的地方,对它进行保存和管理,而且它们还是响应式的
-
OK,从理论上理解了状态管理之后,让我们从实际的代码再来看看状态管理
- 毕竟,Talk is cheap, Show me the code.(来自Linus)