国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解vue后臺系統登錄態管理

2019-11-19 11:54:23
字體:
來源:轉載
供稿:網友

技術應用
js-cookie + vuex + localStorage 做數據持久化

js-cookie

npm i js-cookie --save

vuex

 

user.js

import { login, logout } from '@/servers/login'	import { getToken, setToken, removeToken } from '@/utils/auth' // 這是上面的js-cookie暴露出來的方法	const user = {  state: {    userInfo: "",    token: getToken(),    roles: []  },  mutations: {    SET_TOKEN: (state, token) => {      state.token = token    }  },  actions: {    // 用戶名登錄    login({ commit }, userInfo) {      const userName = userInfo.userName.trim()      return new Promise((resolve, reject) => {        login({userName: userName, password: userInfo.password}).then(res 						=> {          if (res.status.statusCode === 0) {            const data = res.result            commit('SET_TOKEN', data.token)            setToken(data.token)            localStorage.setItem('userInfo', JSON.stringify(data))            resolve()          }          else {            resolve(res.status.statusReason)          }                  })        .catch(error => {          reject(error)        })      })    },    // 登出    logout({ commit }, userId ) {      return new Promise((resolve, reject) => {        logout({id: userId}).then((res) => {          if (res.status.statusCode === 0) {            commit('SET_TOKEN', '')            removeToken()            localStorage.clear()            resolve()          }          else {            resolve(res.status.statusReason)          }        })        .catch(error => {          reject(error)        })      })    }  }}export default user 

getter.js

const getters = {  userInfo: state => state.user.userInfo}export default getters

store.js

import Vue from 'vue'import Vuex from 'vuex'import user from './modules/user'import getters from './getters'Vue.use(Vuex)const store = new Vuex.Store({  modules: {    user  },  getters})export default store

以上就是整個登錄態的設定

在項目中的使用,如下
點擊登錄后

this.$store.dispatch('login', {userName: userName, password: password}).then((res) => {		console.log(res)		if(!res) {			//	登錄成功后的邏輯		} else {			//	登錄失敗后的邏輯		}	})

點擊退出后

this.$store.dispatch('logout', userId).then((res) => {	   if (!res) {	    //	退出成功的邏輯	   }	   else {	    //	退出失敗的邏輯	   }	 })

需要特別注意的一點,vuex在頁面刷新之后會消失掉.

以上所述是小編給大家介紹的vue后臺系統登錄管理詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高碑店市| 横峰县| 海兴县| 太保市| 长岛县| 望谟县| 铜山县| 瓮安县| 新乐市| 沙洋县| 共和县| 杭锦后旗| 得荣县| 社会| 乌海市| 永康市| 桐庐县| 汉沽区| 谢通门县| 镇安县| 昌图县| 彭州市| 淄博市| 永平县| 上饶市| 达日县| 清原| 乌审旗| 辽宁省| 马龙县| 河间市| 河北区| 延长县| 宕昌县| 江津市| 墨玉县| 仙桃市| 杭锦后旗| 彭山县| 新竹市| 赫章县|