首页 > 其他 > 详细

使用vuex

时间:2021-06-10 22:49:46      阅读:18      评论:0      收藏:0      [点我收藏+]
npm install vuex --save
//
yarn add vuex
import Vue from ‘vue‘
import Vuex from ‘vuex‘

Vue.use(Vuex)
import Vue from ‘vue‘
import Vuex from ‘vuex‘
import {
	login,
	getInfo,
	logout
} from ‘@/api/user.js‘
import {
	setToken,
	removeToken,
	getToken
} from ‘@/utils/auth.js‘

Vue.use(Vuex)

const store = new Vuex.Store({
	state: {
		token: getToken(),
		user_info: ‘‘
	},
	mutations: {
		SET_VALUE(state, payload) {
			state[payload.key] = payload.value
		}
	},
	actions: {
		login({
			commit
		}, form) {
			return new Promise((resolve, reject) => {
				login(form).then(res => {
					const {
						data
					} = res
					commit(‘SET_VALUE‘, {
						key: ‘token‘,
						value: data.token
					})
					setToken(data.token)
					resolve()
				}).catch(err => {
					reject(err)
				})
			})
		},
		getUserInfo({
			commit,
			state
		}) {
			return new Promise((resolve,reject)=>{
				getInfo(state.token).then(res=>{
					commit(‘SET_VALUE‘, {
						key: ‘user_info‘,
						value: res.data
					})
					resolve(res.data)
				}).catch(err=>{
					reject(err)
				})
			})
		},
		logout({commit, state}){
			return new Promise((resolve,reject)=>{
				logout(state.token).then(res=>{
					commit(‘SET_VALUE‘, {
						key: ‘token‘,
						value: ‘‘
					})
					commit(‘SET_VALUE‘, {
						key: ‘user_info‘,
						value: ‘‘
					})
					removeToken()
					resolve()
				}).catch(err=>{
					reject(err)
				})
			})
		}
	}
})

export default store

使用

import store from ‘./store‘


new Vue({
	render: h => h(App),
	store
}).$mount(‘#app‘)




import { mapActions } from ‘vuex‘;
methods: {
...mapActions([‘login‘, ‘getUserInfo‘, ‘logout‘]),
handleLogin() {
this.login({ username: ‘admin‘ });
},
handleLoginOut() {
this.logout();
},
handleUserInfo() {
this.getUserInfo().then(res => {
console.log(res);
});
}
},

使用vuex

原文:https://www.cnblogs.com/dafeiyunli/p/14872350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!