vue實現未登陸跳轉到登陸頁面

環境:vue 2.9.3; webpack;vue-routervue

目的:實現未登陸跳轉webpack

例子:直接在url地址欄輸入...../home,可是這個頁面要求須要登錄以後才能進入,判斷的值就經過登錄以後給本地緩存存入的token判斷,若是沒有就跳轉到登陸頁面,有的話就打開。web

圖示:vue-router

一、直接在url地址欄輸入http://127.0.0.1:9000/#/home,可是頁面會直接跳轉到登陸頁,並且會帶上參數。瀏覽器

 

--------------------------------------------分割線----------------------------------------------緩存

vue-router須要安裝ui

首先配置路由url

/src/router/index.js spa

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 用來判斷該路由是否須要登陸。3d

而後配置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一直存在的,判斷就會失效。

相關文章
相關標籤/搜索