zoukankan      html  css  js  c++  java
  • vuex actions异步操作

    不同于mutations,actions可以处理异步操作

    index.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
      state: {
        name: 'furong'
      },
      mutations: {
        nameChage(state, dest) {
          setTimeout(() => {
            state.name = dest;
          }, 1000)
        }
      },
      actions: {
      },
      getters: {
      },
      modules: {
      }
    })
    
    export default store
    

    HelloWorld.vue

    <template>
      <div class="hello">
        <p>name: {{$store.state.name}}</p>
        <button type="button" @click="changeClick">改名</button>
      </div>
    </template>
    
    <script>
      export default {
        name: 'HelloWorld',
        data() {
          return {
            msg: 'Welcome to Your Vue.js App'
          }
        },
        methods: {
          changeClick() {
            this.$store.commit('nameChage', 'quange');
          }
        }
      }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    </style>
    


    devtools

    修改actions

    index.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
      state: {
        name: 'furong'
      },
      mutations: {
        mutNameChage(state, dest) {
          state.name = dest;
        },
      },
      actions: {
        actNameChage(context, dest) {
          setTimeout(() => {
            context.commit('mutNameChage', dest);
          }, 1000)
        }
      },
      getters: {
      },
      modules: {
      }
    })
    
    export default store
    

    HelloWorld.vue

    <template>
      <div class="hello">
        <p>name: {{$store.state.name}}</p>
        <button type="button" @click="changeClick">改名</button>
      </div>
    </template>
    
    <script>
      export default {
        name: 'HelloWorld',
        data() {
          return {
            msg: 'Welcome to Your Vue.js App'
          }
        },
        methods: {
          changeClick() {
            this.$store.dispatch('actNameChage', 'quange');
          }
        }
      }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    </style>
    

    devtools

  • 相关阅读:
    <!DOCTYPE html>的重要性!
    ibatis 常用标签
    string.match(RegExp) 与 RegExp.exec(string) 深入详解
    JavaScript RegExp.$1
    JavaScript RegExp.exec() 方法
    正则表达式常用符号说明
    正则表达式中/i,/g,/ig,/gi,/m的区别和含义
    JavaScript Math.floor() 方法
    JavaScript RegExp.test() 方法
    js日期格式化 扩展Date()
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/15012691.html
Copyright © 2011-2022 走看看