首頁  >  文章  >  web前端  >  vue如何實現頁面的跳躍(未登入跳轉)

vue如何實現頁面的跳躍(未登入跳轉)

不言
不言原創
2018-07-17 16:58:346916瀏覽

這篇文章帶給大家內容是關於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-router路由判斷頁面未登入跳到登入頁面

以上是vue如何實現頁面的跳躍(未登入跳轉)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn