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

  • 相关阅读:
    Python源码阅读(一、环境准备)
    PDF ITextSharp
    模式对话框 打开文件
    MongoDB 最初级步骤
    DataGrid中取HyperLinkColumn列的值,处理DataGrid中绑定的特殊字符
    oracle 将科学计数法数据转换为非科学计数法数据
    Eval 表达式 GridView ItemCommand
    回车,根据编码获取相应记录,然后再将这录绑定到AutoList
    MongoDB 日期 插入时少8小时
    日期给空值
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/15012691.html
Copyright © 2011-2022 走看看