日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

用 vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)

發布時間:2023/12/10 vue 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用 vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

路由跳轉前做一些驗證,比如登錄驗證(未登錄去登錄頁),是網站中的普遍需求。對此,vue-route 提供的 beforeRouteUpdate 可以方便地實現導航守衛(navigation-guards)。
導航守衛(navigation-guards)這個名字,聽起來怪怪的,但既然官方文檔是這樣翻譯的,就姑且這么叫吧。
貼上文檔地址:https://router.vuejs.org/zh-cn/advanced/navigation-guards.html

先來摘抄一段文檔中beforeRouteUpdate 的用法:
你可以使用 router.beforeEach 注冊一個全局前置守衛:

const router = new VueRouter({ ... })router.beforeEach((to, from, next) => {// ... })

當一個導航觸發時,全局前置守衛按照創建順序調用。守衛是異步解析執行,此時導航在所有守衛 resolve 完之前一直處于 等待中。
每個守衛方法接收三個參數:

  • to: Route: 即將要進入的目標 路由對象

  • from: Route: 當前導航正要離開的路由

  • next: Function: 一定要調用該方法來 resolve 這個鉤子。執行效果依賴 next 方法的調用參數。

    • next(): 進行管道中的下一個鉤子。如果全部鉤子執行完了,則導航的狀態就是 confirmed (確認的)。

    • next(false): 中斷當前的導航。如果瀏覽器的 URL 改變了(可能是用戶手動或者瀏覽器后退按鈕),那么 URL 地址會重置到 from 路由對應的地址。

    • next(’/’) 或者 next({ path: ‘/’ }): 跳轉到一個不同的地址。當前的導航被中斷,然后進行一個新的導航。

    • next(error): (2.4.0+) 如果傳入 next 的參數是一個 Error 實例,則導航會被終止且該錯誤會被傳遞給 router.onError() 注冊過的回調。

確保要調用 next 方法,否則鉤子就不會被 resolved。

下面寫一個例子,上一篇博客中我們的賬戶頁,包括課程和訂單,都需要在跳轉前判斷是不是已登錄; 已登錄的情況再去登錄頁,跳轉至首頁:

const vueRouter = new Router({routes: [//......{path: '/account',name: 'account',component: Account,children: [{name: 'course', path: 'course', component: CourseList},{name: 'order', path: 'order', component: OrderList}]}] }); vueRouter.beforeEach(function (to, from, next) {const nextRoute = [ 'account', 'order', 'course'];const auth = store.state.auth;//跳轉至上述3個頁面if (nextRoute.indexOf(to.name) >= 0) {//未登錄if (!store.state.auth.IsLogin) {vueRouter.push({name: 'login'})}}//已登錄的情況再去登錄頁,跳轉至首頁if (to.name === 'login') {if (auth.IsLogin) {vueRouter.push({name: 'home'});}}next(); });

總結

以上是生活随笔為你收集整理的用 vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。