提到vuex,首先要明白vuex是干什么的,用vuex能实现哪些功能,用vuex和其他方式相比有哪些优势,明白了这几点,在做项目上才游刃有余。
首先vuex是用来数据共享的。在这里先说下组件之间共享数据的方式,比如
1父组件向子组件传值:v-bind属性绑定,子组件props接收
2子组件向父组件传值:v-on事件绑定
3兄弟组件之间共享数据 EventBus :$on接收数据,$emit发送数据
4也有用缓存来传值的,比如sessionStorage.localStorage等
但是一旦页面上有多个组件控制某个属性变化时,其余组件都要跟着变化时,这个时候用上述方式就过于繁琐,这个时候用vuex数据共享解决,就不用反复传值。
vuex数据共享的优势:
1.能够在vuex中集中管理共享的数据,便于后续维护和开发(所有共享的数据都可以放在一块)
2.能够高效地统筹组件之间的数据共享,提高开发效率
3存储在vuex中的数据都是响应式的,能够实时保持数据与页面的同步
当然vuex也有其劣势,在一个页面重新渲染或者刷新页面时,vuex里面更新的数据会回复初始值
vuex的简单使用
在store目录下,index.js文件一般分为state,mutations,actions,getters以及可能共享数据过多时,可能分包,这时会用到moudles,
state就是来定义共享的数据,mutations就是改变值时需要通过这里面的方法进行改变,actions就是有异步时,要调用actions方法,再再actions里面调用mutations里面的方法进行改变共享的数据&