Vuex 进修笔记

VUEX是什么?

用来处理组件之间共用数据题目的一个插件
  • Vuex 内部结构

    • State 就是被共用的数据(然则不能够被直接操纵,不能够直接接见)
    • Mutations 能够直接操纵(Mutate) State 中的数据,能够定义 State 中的数据怎样被转变
    • Actions 能够触发 Mutations 对States的转变,该触发操纵专业名词为commit
  • Components 与Vuex的交互

    • 经由过程 dispatch Actions 的体式格局来转变 State
    • 经由过程Render来读取State中的数据

Vuex的运用要领

  1. 新建一个store.js文件(位置能够自选)
  2. 在该文件中引入vue和vuex,并在vue中启用vuex

    Improve vue from 'vue'
    Improve vuex from 'vuex'
    vue.use(vuex)
  3. 在该文件中设置 state,mutations,actions

    //这里的state是数据现实贮存的处所
    const state={
        count:10
    }
    const mutations={
        add(state,param){
            state.count += param
        },
        reduce(state,param){
            state.count -= param
        }
    }
    const actions={
        add:({commit},param)=>{
            commit('add',param)
        },
        reduce:({commit},param)=>{
            commit("reduces",param)
        }
    }
  • 只要一个store设置的要领

    1. 将以上设置在Vuex对象中实例化并导出

      export default new vuex.Store({
          state,
          mutations,
          actions
      })
    2. 在main.js中援用该vuex的store实例

      improt store from './store'
      new vue ({
          ......
          store,
          ......
      })
    3. 在组件中运用vuex的store实例
      在页面中援用该实例state的值 $store.state.count
      引入该实例的actions  

      import {mapActions} from ‘vuex’
      export default {
        methods:mapActions([‘add’,’reduce’])     
      }

      页面运用actions  @click='add(param)' @click='reduce(param)'

  • 有多个store设置的要领

    1. 将以上设置在Vuex对象中实例化并导出

      export default new vuex.Store({
          module:{
             a: {
                  state,
                  mutations,
                  actions
              }
          }
      })
    2. 在main.js中援用该vuex的store实例

      improt store from './store'
      new vue ({
          ......
          store,
          ......
      })
    3. 在组件中运用vuex的store实例
      在页面中援用该实例state的值 $store.state.a.count
      挪用该实例的actions  

        import {mapActions} from ‘vuex’
        export default {
            methods:mapActions('a',[‘add’,’reduce’])     
        }

      页面运用actions  @click='add(param)' @click='reduce(param)'

这篇笔记主如果本人进修Vuex时刻的学问总结,如果有不对的处所还请多多指正

    原文作者:胡晓峰
    原文地址: https://segmentfault.com/a/1190000018733749
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞