Vuex笔记

9 篇文章 0 订阅

Vuex

Vuex是一个专门位vue开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则来保证状态以一种可预测的方式发生变化。

Vuex的关键词:

  • store:store是vuex的核心,store是一个容器,其中包含你的状态(state)
  • state:类似于全局变量。驱动应用的数据源,用于保存所有组件的公共数据
  • getter:类似于计算属性。
  • mutation:类似于方法。第一个参数是state,第二个参数是用户自定义的参数,mutations对象里的方法需要使用store.commit调用
  • action: Action 提交的是 mutation 而不是直接变更状态。action 可以包含任意异步操作。actions 对象里的方法需要使用 store.dispatch 调用
        Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。
  • module:由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割。

安装

npm install vuex --save-dev

配置store的index.js

在src下,新建一个store文件夹,里面新建index.js

import Vue from "vue"
import Vuex from "vuex"

Vue.use(Vuex);

export default new Vuex.Store({
    state:{
      // 自定义的全局变量
        token:"",
        currUserPassword:"",
        currUserName:"",
        currUserPhoneNumber:"",
        currUserEmailNumber:""
    },
    getters:{
        getToken(state){
           return state.token;
        },
        getUserName(state){
            return state.currUserName;
        },
        getUserPassword(state){
          return state.currUserPassword;
        },
        getUserPhoneNumber(state){
          return state.currUserPhoneNumber;
        },
        geteUserEMailNumber(state){
          return state.currUserEmailNumber;
        }

    },
    mutations:{
      // 方法
        // 保存token
        setToken(state,token){
            state.token = token;
        },
        // 保存用户名密码
        setUserPassword(state,currUserPassword){
            state.currUserPassword = currUserPassword;
        },
        // 保存用户名称
        setUserName(state,currUserName){
            state.currUserName = currUserName;
        },
        // 保存所有数据源
        setEmailNumber(state,currEmailNumber){
            state.currEmailNumber = currEmailNumber;
        },
        setPhoneNumber(state,currPhoneNumber){
            state.currPhoneNumber = currPhoneNumber;
        }
      }
})

在main.js中,引入store.js

import store from './store'

在js中,调用store

this.$store.commit('setToken',response.data.data); // 将数据存入token
this.$store.state.token // 直接读取token
this.$store.getters.getToken // 读取计算属性token
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值