首先,使用Vuex的必要性
- 如果想要在子组件中使用祖先组件中的数据,那么就必须一层一层的传递(非常麻烦)
- 兄弟组件之间不能直接传递数据,如果兄弟组件之间想要传递数据,那么就必须借助父组件或者一个中间件(非常麻烦)
其次,什么是Vuex呢
- Vuex是Vue配套的公共数据管理系统,我们可以将共享的数据保存到Vuex中
- 方便整个程序中的任何组件都可以获取和修改Vuex中保存的公共数据
使用Vuex的步骤
- 导入Vuex(注意:在导入Vuex之前必须先导入Vue)
- 创建Vuex对象
const store = new Vuex.Store({state:{count:0},});
(这里的state就相当于组件中的data,就是专门用于保存共享数据的) - 在祖先组件中添加
store
的key保存Vuex对象,然后就可以通过{{this.$store.state.msg}}
进行访问(只要祖先组件中保存了Vuex对象,那么祖先组件和他所有的后代组件就可以使用Vuex中保存的共享数据了)
修改共享数据(操作共享数据)
- 在Vuex中不推荐直接修改共享数据
- 如果多个组件都修改了共享数据,那么后期数据发生了错误,我们如果需要去调试错误,就需要把每一个修改了共享数据的组件都检查一遍,这样效率非常低,非常的不利于我们去排错
mutations:
用于保存修改共享数据的方法(注意:在执行mutations
中定义的方法的时候,系统会自动给这些方法传递一个state
参数,state
中就保存了共享的数据)- 在
methods:
中通过this.$store.commit("方法名")
的方式调用