非Vuex實(shí)現(xiàn)的登錄狀態(tài)判斷封裝實(shí)例代碼
前言
在項(xiàng)目中肯定會(huì)有用戶登錄狀態(tài)的判斷,所以我們需要封裝判斷登錄狀態(tài),用來滿足整個(gè)項(xiàng)目的應(yīng)用,當(dāng)然剛不使用封裝的話,會(huì)造成耦合度高,代碼冗余等結(jié)果,在項(xiàng)目中可能常常用到vuex狀態(tài)管理來進(jìn)行登錄狀態(tài)的存,那如果項(xiàng)目用不到狀態(tài)管理,那就可以使用簡單的封裝來進(jìn)行登錄狀態(tài)判斷。
登錄狀態(tài)封裝
我們?nèi)绻胍胀ǚ庋b登錄狀態(tài)的話需要兩個(gè)函數(shù)即獲取存儲(chǔ)的token的getToken和使用token判斷是否登錄的isLogin,我們需要在src目錄下新建一個(gè)文件夾,又或者在我們封裝請(qǐng)求的文件目錄下新建一個(gè)auth.js即可。
getToken
獲取token的話只需要通過使用localStorage取得token并返回給函數(shù)值
export function getToken() { return localStorage.getItem("token"); }
isLogin
判斷登錄的話僅僅需要通過調(diào)用getToken獲得token的值來返回布爾值從而判斷用戶是否登錄
export function isLogin() { if (getToken()) { return true; } return false; }
除此之外,項(xiàng)目中還會(huì)有別的地方要使用到getToken,比如說在請(qǐng)求頭中需要轉(zhuǎn)入token的值等
使用方法
我們?cè)谝褂玫捻撁嬷兄苯影葱枰爰纯?,比如說這里我們只引進(jìn)isLogin
import { isLogin } from "@/request/auth";
在引入之后,有人就問了,我們判斷用if else嗎,nonono,低了,隱藏分低了,來看我下面的操作
mounted() { // 登錄判斷,項(xiàng)目成功運(yùn)行后啟動(dòng) isLogin() ? console.log("isLogin") : (console.log("Need to login"), this.$message.error('未登錄'), this.$router.push("/login") ); },
注意到這里,我們的登錄狀態(tài)判斷的觸發(fā)位置需要注意一下,一般是在mounted的時(shí)候,即一般是在初始化頁面完成后的鉤子中進(jìn)行登錄狀態(tài)的判斷,這里一般也是頁面獲取信息的請(qǐng)求函數(shù)的位置。
除此之外,我這里的寫法是?:,來進(jìn)行函數(shù)觸發(fā)判斷的,正常來講可能很多人會(huì)使用if,對(duì)了,這里的提示組件是element,大家可以根據(jù)自己組件庫的提示來進(jìn)行不一樣的改動(dòng)。
setToken
既然封裝了getToken,那肯定要再封裝個(gè)setToken,也是為了便捷一些
export function setToken(token) { return localStorage.setItem("token", token); }
最后
到此這篇關(guān)于非Vuex實(shí)現(xiàn)的登錄狀態(tài)判斷封裝的文章就介紹到這了,更多相關(guān)非Vuex登錄狀態(tài)判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue?beforeDestroy?clearInterval清除定時(shí)器失效的解決
這篇文章主要介紹了vue?beforeDestroy?clearInterval清除定時(shí)器失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06基于vue 實(shí)現(xiàn)token驗(yàn)證的實(shí)例代碼
這篇文章主要介紹了基于vue 實(shí)現(xiàn)token驗(yàn)證的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12Vue3實(shí)現(xiàn)一個(gè)可左右滑動(dòng)操作組件的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Vue3實(shí)現(xiàn)一個(gè)可左右滑動(dòng)操作組件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定幫助,感興趣的可以學(xué)一下2022-11-11vue深拷貝的3種實(shí)現(xiàn)方式小結(jié)
當(dāng)使用同一個(gè)對(duì)象產(chǎn)生沖突時(shí),可以使用lodash包,對(duì)該對(duì)象進(jìn)行深拷貝,從而使操作的對(duì)象為不同的對(duì)象,這篇文章主要給大家介紹了關(guān)于vue深拷貝的3種實(shí)現(xiàn)方式,需要的朋友可以參考下2023-02-02vue Element左側(cè)無限級(jí)菜單實(shí)現(xiàn)
這篇文章主要介紹了vue Element左側(cè)無限級(jí)菜單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)
這篇文章主要介紹了vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07