這篇文章主要介紹了怎么在vue項目中實現一個未登錄跳轉到登錄頁面功能,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網頁中相應的地方,所以越來越多的前端開發者使用vue。
環境:vue 2.9.3; webpack;vue-router
目的:實現未登錄跳轉
例子:直接在url地址欄輸入...../home,但是這個頁面要求需要登陸之后才能進入,判斷的值就通過登陸之后給本地緩存存入的token判斷,如果沒有就跳轉到登錄頁面,有的話就打開。
圖示:
1、直接在url地址欄輸入http://127.0.0.1:9000/#/home,但是頁面會直接跳轉到登錄頁,而且會帶上參數。
--------------------------------------------分割線----------------------------------------------
vue-router需要安裝
首先配置路由
/src/router/index.js
import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ routes: [ { path: '/',// 登錄 name: 'Login', component: resolve => require(['@/PACS/pages/Login'],resolve) },{ path: '/home', name: 'Home', meta: { requireAuth: true, // 判斷是否需要登錄 }, component: resolve => require(['@/PACS/pages/Home'],resolve) } ] }) ## 增加了字段 requireAuth 用來判斷該路由是否需要登錄。
然后配置main.js
// 路由判斷登錄 根據路由配置文件的參數 router.beforeEach((to, from, next) => { if (to.matched.some(record => record.meta.requireAuth)){ // 判斷該路由是否需要登錄權限 console.log('需要登錄'); if (localStorage.token) { // 判斷當前的token是否存在 ; 登錄存入的token next(); } else { next({ path: '/', query: {redirect: to.fullPath} // 將跳轉的路由path作為參數,登錄成功后跳轉到該路由 }) } } else { next(); } });
這里是登錄時存入的token
##這樣的話登錄時就會直接跳轉到登錄頁面。
實現登錄成功后再跳回開始輸入的頁面,就要用到后面傳遞的值了。
如果包含redirect就跳轉到剛剛輸入的頁面。
注意:如果將用戶數據保存到localstorage是不合理的,這里只是給出一種思路,如果登陸之后不清空瀏覽器數據,token一直存在的,判斷就會失效。
到此這篇關于怎么在vue項目中實現一個未登錄跳轉到登錄頁面功能的文章就介紹到這了,更多相關怎么在vue項目中實現一個未登錄跳轉到登錄頁面功能的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。