美文网首页
Vuex的使用

Vuex的使用

作者: 大仙爷 | 来源:发表于2018-06-07 23:17 被阅读0次

了解Vuex

在Vue中,多组件的开发给我们带来了很多的方便,但同时当项目规模变大的时候,多个组件间的数据通信和状态管理就显得难以维护,Vuex就此诞生!应用统一的方式进行处理,在后期维护的过程中数据的修改和维护就变得简单而清晰了。用户界面负责触发动作(Action)进而改变对应状态(State),从而反映到视图(View)上。

安装:npm install --save vuex

引入

import Vue from 'vue';
import Vuex from 'vuex';
//模块化编程,这一句是必须的
Vue.use(Vuex)

State

State负责存储整个应用的状态数据,使用this.$store.state直接获取状态

export default new Vuex.Store({
  state: {
    //state定义状态的值,可以理解为定义了各个变量
  "name":"子圆",
  "age":"18",
      "sex":"男",
  }
}

store可以理解为一个容器,包含着数据中的state等

Vuex.Store({
  state,
  actions,
  mutation
});

Mutations (Vuex提供的修改状态值的方法,只能是提交mutation)

changeName(state,preload){},接收两个参数,state和载荷(这个值是可以通过提交mutations时传入)这里面不允许做异步操作。

export default {
    changeName(state, preload) {
        state.name = preload.name;
        state.age = preload.age;
    },
    changeAge(s, p) {
        s.age = p;
    },
}

Actions

Actions也可以用于改变状态,不过是通过触发mutation实现的,重要的是可以包含异步操作。其辅助函数是mapActions与mapMutations类似,也是绑定在组件的methods上的。如果选择直接触发的话,使用this.$store.dispatch(actionName)方法。

 methods:{
        onClick(){
            //通过this.$store.commit提交mutations,第一个参数为mutations的名字,第二个参数为提交的载荷
            //this.$store.commit("changeName",{name:'子圆3',age:'38'});
            //分发action
            this.$store.dispatch("actionName");
        }
      }

Getters

vuex版的计算属性

getters:{
    //vuex版的计算属性
    personInfo(state){
      return state.name+"的年龄是"+state.age+"岁";
      }
    }

相关文章

网友评论

      本文标题:Vuex的使用

      本文链接:https://www.haomeiwen.com/subject/qcawsftx.html