美文网首页
Vuex学习记录

Vuex学习记录

作者: 一个废人 | 来源:发表于2018-01-02 18:37 被阅读11次

    在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
    

    相关文章

      网友评论

          本文标题:Vuex学习记录

          本文链接:https://www.haomeiwen.com/subject/axeqnxtx.html