非Vuex實現的登入狀態判斷封裝
「這是我參與2022首次更文挑戰的第20天,活動詳情檢視:2022首次更文挑戰」
在專案中肯定會有使用者登入狀態的判斷,所以我們需要封裝判斷登入狀態,用來滿足整個專案的應用,當然剛不使用封裝的話,會造成耦合度高,程式碼冗餘等結果,在專案中可能常常用到vuex狀態管理來進行登入狀態的存,那如果專案用不到狀態管理,那就可以使用簡單的封裝來進行登入狀態判斷。
登入狀態封裝
我們如果想要普通封裝登入狀態的話需要兩個函式即獲取儲存的token的getToken
和使用token判斷是否登入的isLogin
,我們需要在src目錄下新建一個資料夾,又或者在我們封裝請求的檔案目錄下新建一個auth.js
即可。
getToken
獲取token的話只需要通過使用localStorage
取得token並返回給函式值
export function getToken() {
return localStorage.getItem("token");
}
isLogin
判斷登入的話僅僅需要通過呼叫getToken
獲得token的值來返回布林值從而判斷使用者是否登入
export function isLogin() {
if (getToken()) {
return true;
}
return false;
}
除此之外,專案中還會有別的地方要使用到getToken,比如說在請求頭中需要轉入token的值等
使用方法
我們在要使用的頁面中直接按需引入即可,比如說這裡我們只引進isLogin
import { isLogin } from "@/request/auth";
在引入之後,有人就問了,我們判斷用if else
嗎,nonono,低了,隱藏分低了,來看我下面的操作
mounted() {
// 登入判斷,專案成功執行後啟動
isLogin()
? console.log("isLogin")
: (console.log("Need to login"),
this.$message.error('未登入'),
this.$router.push("/login")
);
},
注意到這裡,我們的登入狀態判斷的觸發位置需要注意一下,一般是在mounted
的時候,即一般是在初始化頁面完成後的鉤子中進行登入狀態的判斷,這裡一般也是頁面獲取資訊的請求函式的位置。
除此之外,我這裡的寫法是?:
,來進行函式觸發判斷的,正常來講可能很多人會使用if
,對了,這裡的提示元件是element,大家可以根據自己元件庫的提示來進行不一樣的改動。
setToken
既然封裝了getToken,那肯定要再封裝個setToken,也是為了便捷一些
export function setToken(token) {
return localStorage.setItem("token", token);
}
最後
這裡是大二前端小學生的一些些專案小總結,希望可以給你帶來幫助,如果對你有幫助的話,點個小贊贊再走吧🥳
- 一份非官方的稀土掘金社群活動攻略
- 學長突然問我用過Symbol嗎,我哽咽住了(準備捱罵)
- 助力鄉村振興,我為農民伯伯開發了這款微信小程式
- 迷茫者的抉擇,我與掘金的故事,準大三生的年中總結
- 盤點幾種資料型別的解構賦值細節
- vue electron 開發一個實時監測github的跨端桌面應用
- 微信小程式實戰之骨架屏的應用與實現
- 小程式觸底載入與下拉重新整理功能的設計與實現
- 非Vuex實現的登入狀態判斷封裝
- 盤點JS判斷空物件的幾大方法
- 初識指令碼語言VBS
- 瀏覽器物件模型BOM的基本使用
- 基本的移動端適配
- WSL入門與Linux基礎❤
- 超Q的彈性盒子——flex✨
- 2021琴理工作室JS基礎教學(上)