2019-11-06 vuex使用

//store.ts

  import Vue from 'vue';
  import Vuex from 'vuex';
  Vue.use(Vuex);
  const task = {
    state: {
      taskPerson: localStorage.taskPerson||[]
    },
    getters:{
       taskPerson: (state: any) => state.task.taskPerson
   },  
    mutations: {
      SET_TASKPERSON:(state: any, taskPerson: any) => {
         state.taskPerson = taskPerson;
         localStorage.taskPerson = JSON.stringify(taskPerson)
      }
    },
    actions: {
      settaskperson({commit}: any,taskPerson: any){
        commit('SET_TASKPERSON', taskPerson);
      }
    }
  };

 const store = new Vuex.Store({
   modules: {
     task
   }
 });
  export default store ;

//main.ts中

import store from './store';
  new Vue({
    store,
    render: (h: any) => h(App)
  }).$mount('#app');

//task.vue

<template>
  <div>
     <span>{{getTaskPerson}}</span>
      <button @click="fn"></button>
  </div>
</template>
<script>
 export default {
    computed:{
        getTaskPerson(){
           return  this.$store.getters.taskPerson
        }
    },
    methods:{
         fn(){
             let a = Math.random()*10
             this.$store.dispatch("settaskperson",a)
         }
    }
}
</script>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。