欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue中的導(dǎo)航守衛(wèi)使用及說(shuō)明

 更新時(shí)間:2023年01月20日 09:49:49   作者:AIpoem  
這篇文章主要介紹了vue中的導(dǎo)航守衛(wèi)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

導(dǎo)航守衛(wèi)

  • 作用:對(duì)路由進(jìn)行權(quán)限控制
  • 分類(lèi):全局守衛(wèi)、獨(dú)享守衛(wèi)、組件內(nèi)守衛(wèi)

全局守衛(wèi)

const router = new VueRouter({
  routes: [
    {
      path: '/home',
      component: Home,
      meta: { isAuth: false },	// 不需要進(jìn)行權(quán)限控制
    },
     {
      path: '/user',
      component: User,
      meta: { isAuth: true },	// 需要進(jìn)行權(quán)限控制
    },
  ]
})
// 全局前置守衛(wèi):初始化時(shí)執(zhí)行/每次路由切換前執(zhí)行
router.beforeEach((to,from,next) => {
  if(to.meta.isAuth) {  // 判斷當(dāng)前路由是否需要進(jìn)行權(quán)限控制(在需要進(jìn)行權(quán)限控制的路由中配置isAuth屬性)
    if(localStorage.getItem('xxx') === 'xxx') { // 權(quán)限控制的具體規(guī)則
      next();   // 放行
    }else {
      ...
    }
  } else {  // 當(dāng)前路由不需要進(jìn)行權(quán)限控制
    next(); // 直接放行
  }
})
// 全局后置守衛(wèi):初始化時(shí)執(zhí)行,每次路由切換后執(zhí)行
router.afterEach((to,from) => {
  if(to.meta.title) {
    document.title = to.meta.title; // 修改網(wǎng)頁(yè)的title
  }else {
    document.title = 'xxx';
  }
})

獨(dú)享守衛(wèi)

加在某個(gè)路由的配置中

beforeEnter((to,from,next) => {
? if(to.meta.isAuth) { ?// 判斷當(dāng)前路由是否需要進(jìn)行權(quán)限控制(在需要進(jìn)行權(quán)限控制的路由中配置isAuth屬性)
? ? if(localStorage.getItem('xxx') === 'xxx') { // 權(quán)限控制的具體規(guī)則
? ? ? next(); ? // 放行
? ? }else {
? ? ? ...
? ? }
? } else { ?// 當(dāng)前路由不需要進(jìn)行權(quán)限控制
? ? next(); // 直接放行
? }
})

組件內(nèi)守衛(wèi)

// 進(jìn)入守衛(wèi),通過(guò)路由規(guī)則,進(jìn)入該組件時(shí)被調(diào)用
beforeRouteEnter(to,from,next){
  ...
}
// 當(dāng)前路由改變,但是該組件被復(fù)用時(shí)調(diào)用
// 舉例來(lái)說(shuō),對(duì)于一個(gè)帶有動(dòng)態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時(shí)候,
// 由于會(huì)渲染同樣的 Foo 組件,組件實(shí)例會(huì)被復(fù)用。而這個(gè)鉤子就會(huì)被調(diào)用
beforeRouteUpdate(to,from,next{
  ...
}
// 離開(kāi)守衛(wèi),通過(guò)路由規(guī)則,離開(kāi)該組件時(shí)被調(diào)用
beforeRouteLeave(to,from,next){
  ...
}

vue導(dǎo)航守衛(wèi)有哪些

路由的鉤子函數(shù)有六個(gè)

  • 全局的路由鉤子函數(shù):beforeEach、afterEach
  • 單個(gè)路由的鉤子函數(shù):beforeEnter
  • 組件內(nèi)路由鉤子函數(shù):beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave

全局路由鉤子函數(shù)

1、全局前置守衛(wèi): beforeEach(to, from, next)

router.beforeEach: 在每次每一個(gè)路由改變的時(shí)候都會(huì)執(zhí)行一遍

  • to:將要進(jìn)入的路由對(duì)象
  • from: 當(dāng)前正要離開(kāi)的路由對(duì)象
  • next

next(),進(jìn)入下一個(gè)路由,必須調(diào)用,不然不會(huì)跳轉(zhuǎn)

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

next(’/’) 或者 next({ paht:’/’}):跳轉(zhuǎn)到一個(gè)不同的地址。當(dāng)前的導(dǎo)航會(huì)被中斷,然后進(jìn)行一個(gè)新的導(dǎo)航。可傳遞的參數(shù)可以是 router-link 標(biāo)簽中的 to 屬性參數(shù)或 router.push 中的選項(xiàng)

應(yīng)用場(chǎng)景:可進(jìn)行一些頁(yè)面跳轉(zhuǎn)前處理,例如判斷需要登錄的頁(yè)面進(jìn)行攔截,做登錄跳轉(zhuǎn), 還有管理員權(quán)限判斷。

2、全局后置守衛(wèi):afterEach(to, from)

router.afterEach: 和 beforeEach 相反,它是在路由跳轉(zhuǎn)完成后觸發(fā),它發(fā)生在 beforeEach 之后 beforeRouteEnter(組件內(nèi)守衛(wèi)) 之前, 因?yàn)槭翘D(zhuǎn)完成后觸發(fā),所以沒(méi)有 next 參數(shù)。

路由內(nèi)的鉤子函數(shù)

路由獨(dú)享守衛(wèi):beforeEnter(to, from, next)

和 beforeEach 完全相同,如果兩個(gè)都設(shè)置了,beforeEnter 則在 beforeEach 之后緊隨執(zhí)行。在路由配置上直接定義 beforeEnter 守衛(wèi)

組件內(nèi)的鉤子函數(shù)

是指在組件內(nèi)執(zhí)行的鉤子函數(shù),類(lèi)似于組件內(nèi)的生命周期

  • 組件前置守衛(wèi) beforeRouteEnter: 該鉤子在全局守衛(wèi) beforeEach 和獨(dú)享守衛(wèi) beforeEnter 之后。
  • 組件更新守衛(wèi) beforeRouteUpdate:在當(dāng)前路由改變時(shí),并且該組件被復(fù)用時(shí)調(diào)用。
  • 組件離開(kāi)守衛(wèi) beforeRouteLeave:導(dǎo)航離開(kāi)該組件的對(duì)應(yīng)路由時(shí)調(diào)用
const Foo = {
  template: `...`,
  beforeRouteEnter (to, from, next) {
    // 在渲染該組件的對(duì)應(yīng)路由被 confirm 前調(diào)用
    // 不!能!獲取組件實(shí)例 `this`
    // 因?yàn)楫?dāng)鉤子執(zhí)行前,組件實(shí)例還沒(méi)被創(chuàng)建
  },
  beforeRouteUpdate (to, from, next) {
    // 在當(dāng)前路由改變,但是該組件被復(fù)用時(shí)調(diào)用
    // 舉例來(lái)說(shuō),對(duì)于一個(gè)帶有動(dòng)態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時(shí)候,
    // 由于會(huì)渲染同樣的 Foo 組件,因此組件實(shí)例會(huì)被復(fù)用。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用。
    // 可以訪問(wèn)組件實(shí)例 `this`
  },
  beforeRouteLeave (to, from, next) {
    // 導(dǎo)航離開(kāi)該組件的對(duì)應(yīng)路由時(shí)調(diào)用
    // 可以訪問(wèn)組件實(shí)例 `this`
  }

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在vue中使用Echarts畫(huà)曲線圖的示例

    在vue中使用Echarts畫(huà)曲線圖的示例

    這篇文章主要介紹了在vue中使用Echarts畫(huà)曲線圖的示例,幫助大家在vue中繪制圖表,感興趣的朋友可以了解下
    2020-10-10
  • vue實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能

    vue實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Vue+jsPlumb實(shí)現(xiàn)連線效果(支持滑動(dòng)連線和點(diǎn)擊連線)

    Vue+jsPlumb實(shí)現(xiàn)連線效果(支持滑動(dòng)連線和點(diǎn)擊連線)

    jsPlumb 是一個(gè)比較強(qiáng)大的繪圖組件,它提供了一種方法,主要用于連接網(wǎng)頁(yè)上的元素。本文將利用jsPlumb實(shí)現(xiàn)連線效果,同時(shí)支持滑動(dòng)連線和點(diǎn)擊連線,感興趣的可以了解一下
    2023-01-01
  • vue Cli 環(huán)境刪除與重裝教程 - 版本文檔

    vue Cli 環(huán)境刪除與重裝教程 - 版本文檔

    這篇文章主要介紹了vue Cli 環(huán)境刪除與重裝教程 - 版本文檔,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 一定要知道的 25 個(gè) Vue 技巧

    一定要知道的 25 個(gè) Vue 技巧

    這篇文章主要給大家分享將 prop 限制為類(lèi)型列表、默認(rèn)內(nèi)容和擴(kuò)展點(diǎn)、使用引號(hào)觀察嵌套值、知道何時(shí)使用 v-if、單作用域 slot 的簡(jiǎn)寫(xiě)、有條件地渲染slot等25 個(gè)Vue 技巧,下文是下相關(guān)資料,需要的朋友可以參考一下
    2021-11-11
  • 淺談Vue中的this.$store.state.xx.xx

    淺談Vue中的this.$store.state.xx.xx

    這篇文章主要介紹了Vue中的this.$store.state.xx.xx用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Vue之請(qǐng)求如何傳遞參數(shù)

    Vue之請(qǐng)求如何傳遞參數(shù)

    這篇文章主要介紹了Vue之請(qǐng)求如何傳遞參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 使用vue-cli腳手架工具搭建vue-webpack項(xiàng)目

    使用vue-cli腳手架工具搭建vue-webpack項(xiàng)目

    這篇文章主要介紹了使用vue-cli腳手架工具搭建vue-webpack項(xiàng)目,通過(guò)幾個(gè)默認(rèn)的步驟幫助你快速的構(gòu)建Vue.js項(xiàng)目。非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2019-01-01
  • vue 2.x 中axios 封裝的get 和post方法

    vue 2.x 中axios 封裝的get 和post方法

    本文通過(guò)實(shí)例代碼給大家介紹了vue 2.x 中axios 封裝的get 和post方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-02-02
  • Vue實(shí)現(xiàn)微信支付功能遇到的坑

    Vue實(shí)現(xiàn)微信支付功能遇到的坑

    這篇文章主要介紹了Vue實(shí)現(xiàn)微信支付功能遇到的坑,本文是小編記錄整理下拉的,以便日后所需,需要的朋友可以參考下
    2019-06-06

最新評(píng)論