vue项目中引入vuex以及vuex简单的使用

vuex安装
npm install --save vuex

安装成功后,可在package.json中看到安装的版本

在store文件夹中的index.js中引入
import Vuex from 'vuex';
Vue.use(Vuex);
在index.js中创建vuex的store
const store = new Vuex.Store({
    state:{
        Authorization:localStorage.getItem('Authorization') ? localStorage.getItem('Authorization') : '',

    },
    mutations:{
        //第一个是state参数,第二个是usr自定义参数,或称为载荷(payload),也就是我在登录的时候传入的数据
        changeLogin(state,user){
            state.Authorization = user.Authorization;
            localStorage.setItem('Authorization', user.Authorization);
        }
    },
    //异步用到actions
    actions:{

    },
    //通过getters获取数据
    getters:{

    }
});
使用vuex

例如在login.vue中使用vuex

  • 首先导入mapMutations
<script>
import { mapMutations } from 'vuex';
    export default {}
</script>
  • 在methods中引入store中定义的函数
methods: {
	...mapMutations(['changeLogin']),
}
  • 在具体函数中使用引入的函数,例如将当前用户的token存储起来,放到Authorization中
submitLogin() {
	this.axios.post("/dataConversionJS/login", userJson)
		.then(res => {
			let data = res.data;
			if(data.code === 0){
			_this.$message({
			message:'Success!',
			type:'success'
			});
			//获取当前登录的用户信息
			this.loginUser = res.data.message.account;
			//将用户token保存到vuex中
			this.changeLogin({Authorization:res.data.message.token});
		}
}
  • 在其他任意一个vue页面中引入mapMutations,即可使用存储起来的token
    例如在navigation.vue中

引入

import { mapMutations } from "vuex";

使用

v-if="this.$store.state.Authorization != ''"

移除元素

Logout() {
      localStorage.removeItem("Authorization");
      this.$store.state.Authorization = '';
      this.$router.push("/login");
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值