環境: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實現未登錄跳轉到登錄頁面,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
| 
 
 | 
新聞熱點
疑難解答