美文网首页
vue中的状态管理(全局变量)-vuex

vue中的状态管理(全局变量)-vuex

作者: 蘑菇Ai布丁 | 来源:发表于2018-12-03 17:05 被阅读0次

vuex是一个状态管理插件,理解开来就是vue中的全局变量,非常轻量级,但是需要注意的是刷新以后就清除了,所以很多东西在vuex中还要注意在缓存中存储。

首先我们主要了解一个vuex的主要属性

 核心仓库是store(state,mutations,actions,getter,modules)。

action 提交mutation,而不是直接更改状态

action 可以包括异步操作,mutation只能同步

modules  将store分割成模块(modules),每个模块拥有自己的(state,mutations,actions,getter);方便维护

store 改变状态时通过 (commit) mutations

getter 全局获取

mutations :改变store中变量的唯一方法

废话不多说,我们来看看vuex的使用情况:

一:首先我们需要安装vuex

npm install vuex --save

二:我们需要在src目录下新建一个store文件夹,并且新建一个index.js的文件

import Vuefrom 'vue';

import Vuexfrom 'vuex';

import app from './modules/app';

import user from './modules/user';

import permission from './modules/permission';

import getters from './getters';

Vue.use(Vuex);

const store =new Vuex.Store({

    modules: {

    user

      },

    getters

    });

export default store

这里我们用引入模块的方式来进行数据操作。

同时我们在store文件夹中新建一个module的文件夹,并且新建一个user.js

在user中我们写一个获取token的方法

首先我们定义一下token

const user = {

    state: {

        token:‘’

    }

}

export default user;

然后我们写一个方法来赋值token,这个方法必须要写在mutations中

mutations: {

    SET_TOKEN: (state, token) => {

    state.token = token;

    }

}

我们写一个外部方法,可以让外部调用修改token

actions: {

    SaveToken({

        commit

        }, token) {

            commit('SET_TOKEN',token);

        }

}

在提交mutations修改store的时候可以用commit同步提交,也可以用dispatch异步提交

这样我们就把token保存在里store中

三:为了方便获取,我们来重写一个getters

在store文件夹中新建一个getters.js,将token写进去

const getters = {

token: state => state.user.token

};

export default getters

四:我们需要在main.js中引入vuex

import store from './store';

//实例化 store

new Vue({

  el: '#app',

  store,

  router,

  template: '',

  components: { App }

})

五:在页面中保存token

只需要在别的页面中调用

this.$store.dispatch('SaveToken',“token”).then((res) => {

}

res是如果有回调的数据,可以在vuex中

使用resolve回调,reject是报错回调。

六:保存好了,我们可以进行获取了

在页面中引入getter

import { mapGetters }from 'vuex';

在计算属性中

computed: {

    ...mapGetters([

       'token'

     ])

}

这样就相当于吧token注册到了data中了,可以随便用了

相关文章

  • vuex的作用?

    vuex是一个专门为vue.js应用程序开发的状态管理模式vuex可以帮助我们管理共享状态,也就是管理全局变量vu...

  • VUE学习笔记---初识VueX

    什么是VueX VueX是专门服务于Vue.js的状态管理模式,大白话就是Vue项目中有一些全局变量,这些变量每个...

  • Angular5中状态管理

    前面学习了vue,react 都有状态管理,如vue中的vuex是全局状态管理,在任何组件里都可以引用状态管理中的...

  • vue中的状态管理(全局变量)-vuex

    vuex是一个状态管理插件,理解开来就是vue中的全局变量,非常轻量级,但是需要注意的是刷新以后就清除了,所以很多...

  • vuex1.0入门说明

    vuex 1.0 vue1的版本vuex 是对vue中的数据源状态进行管理的框架 vuex的图解 vuex就是一个...

  • 15-Vuex基础

    Vue之vuex状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 这个Vuex包含以下几...

  • Vuex

    是什么? Vuex 是专门为Vue提供的状态管理工具 状态即数据 状态管理就是管理 Vue组件中的数据 内部机制:...

  • vuex

    vuex 状态管理 简介:Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 s...

  • 2018-04-01

    什么是vuex? Vuex 是一个专为Vue.js用程序开发的状态管理模式。 状态管理模式中的状态是指什么状态?为...

  • vuex的使用

    在react中有redux进行全局状态管理,那么在vue中自然也有自己的状态管理插件vuex。vue相较于reac...

网友评论

      本文标题:vue中的状态管理(全局变量)-vuex

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