zoukankan      html  css  js  c++  java
  • vuex的actions属性

    vuex的actions属性是用来处理异步方法的,通过提交mutations实现

    actions里要传入两个参数context和playload

    调用actions的时候,使用this.$store.dispatch("actionsName",playload)

    store.js

    复制代码
    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    export const store = new Vuex.Store({
        state: {
            prod: [
                { name: "zs", age: 12 },
                { name: "ls", age: 13 },
                { name: "ww", age: 14 },
            ]
        },
        getters: {
            getValue(state) {
                var item = state.prod.map(ele => {
                    return {
                        name: ele.name + "__技术部",
                        age: ele.age + 10
                    }
                 
                })
                return item;
            },
            getAgeByName:(state)=>(name)=>{
                var items = state.prod.find(ele=>{
                    if(ele.name === name){
                        return ele.age;
                    }
                })
                return items.age;
            }
    
        },
         mutations: {
            getValue(state, num) {
                var items = state.prod.map(ele => {
                    return {
                        age: ele.age += num
                    }
                })
                return items;
            }
        },
        actions: {
            getActionsValue(context, playload) {
                setTimeout(function () {
                    context.commit("getValue", playload);
                }, 2000)
            }
        }
    })
    复制代码

    home.vue

    复制代码
    <template>
    <div>
        <table>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
            </tr>
            <tr v-for="(item,i) in getValue">
                <td>{{item.name}}</td>
                <td>{{item.age}}</td>
            </tr>
        </table>
        <hr>
        <table>
            <tr>
               <th>姓名</th>
                <th>年龄</th>
            </tr>
             <tr v-for="(item,i) in getVal">
                <td>{{item.name}}</td>
                <td>{{item.age}}</td>
            </tr>
          
        </table>
         <hr>
            <button @click="getMutationsMethds(100)">mutations get</button>
            <hr>
            <button @click="getActionsMethods(200)">actions get</button>
    </div>
    </template>
    <script>
    export default {
      name: "Home",
      data () {
        return {
        };
      },
      computed:{
          getValue(){
            return   this.$store.state.prod;
          },
          getVal(){
            return   this.$store.getters.getValue;
          }
      },
      methods:{
          getMutationsMethds(num){
              this.$store.commit("getValue",num);
          },
          getActionsMethods(amount){
              this.$store.dispatch("getActionsValue",amount);
          }
      },
      created(){
         console.log( this.$store.getters.getAgeByName("zs"));
         
      }
    }
    </script>
    <style lang="css" scoped>
    </style>
    复制代码
  • 相关阅读:
    UOJ299 游戏
    SPOJ-DivCnt2 Counting Divisors (square)
    Gym102331B Bitwise Xor
    POJ3495 Bitwise XOR of Arithmetic Progression
    LG5325 【模板】Min_25筛
    LOJ6229 这是一道简单的数学题
    BZOJ3601 一个人的数论
    LOJ138 类欧几里得算法
    Atcoder TypicalDPContest N~T
    莫队基础题
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/13516460.html
Copyright © 2011-2022 走看看