vue-router中
a頁面跳到b頁面,b頁面需要登錄,如果未登錄需要跳到登錄頁面,然後跳到b頁面,現(xiàn)在是可以跳到登錄頁面,但登入後要跳到的b頁面怎麼實(shí)現(xiàn)?因?yàn)閎頁面不是一個(gè)固定的頁面,可能是退出頁面,用戶中心頁面等
這個(gè)需要在登入頁面做處理,跳到登入頁面的時(shí)候
http://登錄頁面URL/login?from=${encodeURLComponent(location.href)}
這樣在登入頁面,你就能在queryString裡拿到這個(gè)from參數(shù)
認(rèn)證完之後,根據(jù)這個(gè)from跳轉(zhuǎn)回去就OK了
請參考vue-router官方文件上的router.beforeEach鉤子函數(shù),可以用來實(shí)現(xiàn)你的功能。原理大概就是:
每次路由跳轉(zhuǎn)都經(jīng)過beforeEach這個(gè)鉤子函數(shù),里面的邏輯是若目的地是你需要先校驗(yàn)登錄狀態(tài)再跳轉(zhuǎn)的頁面,則檢查登錄態(tài),檢查通過則調(diào)用next(),否則跳轉(zhuǎn)到登錄頁,并且?guī)系膓uery是目的頁面的fullPath,用于登錄后跳轉(zhuǎn)到目的頁面用。
有疑問可以私聊溝通下~