Vuex学习记录

在vue项目中,常常会遇到状态管理的问题。

比如子组件的某一状态的改变会影响到父组件,这时,我们可以运用this.$parent的方式改变父亲组件某个data的值。

但是,如果该组件的状态同时影响其兄弟组件,那怎么办呢?有一个办法,就是先把值通过$this.parent传给父,然后再传给兄弟组件,但这样的工作实在很繁琐。

更糟糕的是,如果该组件的状态还影响了兄弟组件的子组件呢?那岂不是得层层嵌套通过props传值?

你说这个我也能接受,那好。如果一个月后,再让你回头修改代码,需要知道某组件的状态(比如显示隐藏)是哪里传来的,结果你层层向上找,层层向上找.....后面竟然忘了自己要干啥了。唔,这真是一个悲伤的故事。

所以,一个全局的状态管理是很有必要的。这里就有了我们的x字辈等状态管理工具,如redux。在vue中,就是vuex了:

一、

安装 Vuex 之后,让我们来创建一个 store。创建过程直截了当——仅需要提供一个初始 state 对象和一些 mutation

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})

在,我们可以通过 store.state 来获取状态对象,以及通过 store.commit 方法触发状态变更:

store.commit('increment')

console.log(store.state.count) // -> 1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容