vuex 五个属性的使用


创建vuex.js

配置要依赖

import vue from 'vue'

import vuex from 'vuex'

Vue.use(vuex);

exoprt var store default new Vuex.Store{

  state:{},//定义属性值

  mutations:{},//设置方法函数,注意:mutations不能有异步处理,因为有异步处理程序会很调试,devtooles也会很难追踪到状态

  actions:{},//用来处理mutatuions的异步处理

  getters:{}//此方法和vue中的computed一样

}

1.state

state与vue中的data类似,都是用来定义属性值。

例:state:{

  psd:'123456',

  phone:'13927975000',

  time:1

}

2.mutations

mutations用来定义方法,可以通过这个来修改state中的属性值,写方法是最好采用大写

例:mutations:{

  MODIFY(key){

    state.psd = key;

  },

  TIME(){

    state.time++;

  }

}

3.actions

actions因为mutations不能处理异步程序,所以用actions处理,actions不能自己定义方法,都是通过调用mutations中的方法,写方法是最好采用大写

例:actions:{

   MODIFYTIME({commit}){

    setTimeout(function(){

      commit('TIME');

    },1000);

  }

}

4.getters

getters与vue中的computed相似,可以监听每个属性值的变化

例:getters:{

  msg(state){

    var msg = '';

    if(state.psd == ''){

      msg  = '密码不能空';

    }else{

      msg = ’设置成功‘;

    }

    return  msg ;

  }

}

 

在app.vue页面中引用

import store from './vuex.js';

import {mapState,,mapMutations,mapActions,mapGetters}  from 'vuex';

new Vue({

  el:'#app',

  store:store,

  data:{},

  methods:{

    //mutations用法,第一种

    modify(){

      store.commit('MODIFY');

    }

    //mutations用法,第二种

    ...mapMutations[{

      modify:'MODIFY'

    }],

    

    //actions用法,第一种

    modifytime(){

      store.commit('MODIFYTIME');

    }

    //actions用法,第二种

    ...mapActions[{

      modifytime:'MODIFYTIME'

    }]

  },

  computed:{

    //获取state中的值,第一种写法

    psd(){

      return this.$store.state.psd;

    }

    //获取state中的值,第二种写法

    ...mapState[{ psd:store => store.state.psd}]

    

    //获取getters中的值,第一种写法

    msg(){

      return this.$store.state.msg;

    }

    //获取getter中的值,第二种写法

    ...mapGetters[{ msg:store=> store.getters.msg}]

  }

});


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM