• Vuex的总结


    1、state、mutations、actions、modules

    state → 用来定义变量

    mutations → 定义方法给state中的变量赋值

    actions → 调用mutations中的方法执行

    modules → 存放其他模块(其他的Store)

    来张图更清晰

    export default new Vuex.Store({
      //1、定义变量
      state: {
      },
      //2、给store中的变量赋值  
      mutations: {
          
      },
      //3、调用mutations中的方法
      actions: {
        
      },
      //其他的Store
      modules: {
      }
    })

    例子:

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
      state: {
        Num:999
      },
      mutations: {
        ADD(state){
          state.Num += 1;
        }
      },
      actions: {
        FUNADD({commit,state}){ //结构{commit,state}
          //可以如下这样写,但不建议这样写
          //state.Num = 888
          //这样写
          commit('ADD')
        }
      },
      modules: {
      }
    })

    页面代码:

    <template>
      <div>
        <!-- 直接获取值 -->
        {{$store.state.Num}}
        <button @click="add()">加+1</button>
      </div>
    </template>
    
    <script>
    export default {
      data(){
    
      },
      mounted() {
        this.add()
      },
      methods:{
        add(){
          //用dispatch直接调用FUNADD,FUNADD是哪里来的呢? 来自actions中的FUNADD
          this.$store.dispatch('FUNADD');  //这里 FUNADD 是定义的一个常量名称,也可以是变量
        }
      }
    }
    </script>

    ----------------------------------------------------------------------------------------------

    来升级一下 store/ index.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    var state = {
      Num:999
    }
    
    var mutations = {
      ADD(state){
        state.Num += 1;
      }
    }
    
    var actions= {
      FUNADD({commit,state}){ //结构{commit,state}
        commit('ADD')
      }
    }
    
    var getters = { //getters相当于计算属性
      isJiOrOu(state){
        return state.Num  % 2 ==0 ? '偶数':'奇数';
      }
    }
    
    export default new Vuex.Store({
      state,
      getters,
      actions,
      mutations,
      modules: {
      }
    })
    <template>
      <div>
        <!-- 直接获取值 -->
        {{$store.state.Num}}
        <button @click="add()">加+1</button>
        <!-- 奇、偶数 -->
        <h1>{{$store.getters.isJiOrOu}}</h1>
      </div>
    </template>
    
    <script>
    export default {
      data(){
    
      },
      mounted() {
        this.add()
      },
      methods:{
        add(){
          //用dispatch直接调用FUNADD,FUNADD是哪里来的呢? 来自actions中的FUNADD
          this.$store.dispatch('FUNADD');  //这里 FUNADD 是定义的一个常量名称,也可以是变量
        }
      }
    }
    </script>

    未完待续。。。。。

  • 相关阅读:
    win10新特性,ubuntu子系统(安装及配置)
    excel计算后列填充
    word中利用宏替换标点标点全角与半角
    CFD-post的奇技淫巧
    mfix模拟流化床燃烧帮助收敛的方法
    cygwin下配置alias
    endnote 使用方法
    win8系统换win7系统
    python中的函数以及递归
    01python算法--算法和数据结构是什么鬼?
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/15721152.html
Copyright © 2020-2023  润新知