vue2.0手把手教你開發(fā)商戶管理端后臺(二)之全局路由守衛(wèi)

寫在前面:

項(xiàng)目地址:GitHub - jianjiayi/Merchant: vue全家桶開發(fā)商戶后臺管理,vue2.0手把手教你開發(fā)商戶管理端后臺

有什么不明白的,可以發(fā)郵件給我:m13121378101@163.com;

在上一篇文章我們已經(jīng)搭建好了一個基本的后臺頁面,沒有看到的同學(xué),可以點(diǎn)這里vue2.0手把手教你開發(fā)商戶管理端后臺(一)之基礎(chǔ)篇 - 簡書

還記得嗎,我們在編寫路由的時候特意留下了一個字段:auth:false;


0001

現(xiàn)在來說下,定義這個字段,就說當(dāng)跳轉(zhuǎn)路由的時候,如果auth == false的話,那么我們就要求用戶必須登錄才能查看。

一、什么叫:路由守衛(wèi)?

這里借用下官網(wǎng)說的:可以查看官網(wǎng)解釋:Vue Router | 導(dǎo)航守衛(wèi)

正如其名,vue-router?提供的導(dǎo)航守衛(wèi)主要用來通過跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航。有多種機(jī)會植入路由導(dǎo)航過程中:全局的, 單個路由獨(dú)享的, 或者組件級的。

記住參數(shù)或查詢的改變并不會觸發(fā)進(jìn)入/離開的導(dǎo)航守衛(wèi)。你可以通過觀察?$route?對象來應(yīng)對這些變化,或使用?beforeRouteUpdate?的組件內(nèi)守衛(wèi)。

二、如何實(shí)現(xiàn)路由守衛(wèi)?

1、在src/views文件下新建login.vue:


0002

2、在src/router/index.js下添加如下路由信息:


0003

3、我們在修改main.js,添加路由守衛(wèi):


0004

現(xiàn)在重啟下項(xiàng)目:npm run dev,在瀏覽器輸入:http://localhost:8080/#/

是不是自動跳轉(zhuǎn)到:http://localhost:8080/#/login這個鏈接了。

在地址連輸入這個鏈接:http://localhost:8080/#/goods/list,是不是頁跳轉(zhuǎn)到了登錄頁


0005

這樣就添加上了路由守衛(wèi)。

這樣看著太不美觀了吧!我隨便輸入一個地址,定義好的跳轉(zhuǎn)了login,沒有定義的就不跳轉(zhuǎn)了,應(yīng)該調(diào)到404頁面呀!那我們?nèi)懸粋€404頁面吧!

4、在src/views文件下新建目錄如下:


0006

????404.vue代碼:


0007

再去修改src/router/index.js路有文件:


0008

我們在瀏覽器地址欄 輸入:http://localhost:8081/#/111111

是不是就直接跳轉(zhuǎn)到:http://localhost:8081/#/404


0009

我們在美化下login.vue頁面和404頁面吧!

1、login.vue:


0010


0010-1


0010-2

2、404.vue:這個頁面就隨便找個圖片添加就可以了

我們下效果圖:


0011

三、如何保存用戶登錄信息呢?

用戶信息放到store里但是需要緩存到sessionStorage中,如:

store.js中:

state: {

? ? userInfo: sessionStorage.getItem('xxx-info');

},

mutations: {

? ? setUserInfo(state, info) {

? ? ? ? state.userInfo=info;

? ? ? ? sessionStorage.setItem('xxx-info', info);

? ? }

}

登錄成功:

this.$store.commit('setUserInfo',info);

需要用戶數(shù)據(jù)直接vuex中獲取:

this.$store.state.userInfo;

我們在下一章將如何使用vuex+sessionStorage保存永不登錄信息?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容