Vuex的使用

了解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+"岁";
      }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 备注:此案例是用vue脚手架创建的demo 1、首先要知道什么是Vuex? 在Vue官方网站的解释是:Vuex 是...
    浪流儿阅读 4,111评论 0 3
  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 2,970评论 0 7
  • Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件...
    萧玄辞阅读 3,154评论 0 6
  • 1.在项目main.js中引入store,并挂载 2.建立store仓库,结构如下 3.state的理解单一状态树...
    以手画圆心阅读 3,554评论 2 7
  • Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应...
    白水螺丝阅读 4,691评论 7 61