在vue中处理多组件通信的时候一般都会用vuex
如果在列表页点击编辑按钮,进入详情页,详情有很多个组件组成,很多组件需要获取详情id,这个时候就需要把id存到vuex里,再在组件里进行获取.
在store的state下定义一个id,然后在组件内,使用computed来获取这个id
有时候我们需要在页面修改store中的值,这个时候就要为computed设置set方法了,computed默认是只有get方法,设置set方法后
将新值使用this.$store.commit('SET_DATA',newValue) 重新赋值
这样就达到了组件与store的双向通信.
最近比较流行的做法是将页面所有的业务逻辑搬到store中,我本身是不太喜欢这做法的,vuex设计的初衷是为了解决多组件通讯的难题,而不是为了处理业务逻辑.做个C层. 但对于通用的业务逻辑可以进行封装.单独做出一个store模块.导出使用.
使用vuex时要记住,所有的异步操作放到Actions中进行.尽量使用命名空间来读写stroe中的数据.这样可以很好的隔离其他模块.