日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例

瀏覽:192日期:2022-06-01 17:39:47
目錄
  • 1、導(dǎo)航守衛(wèi)
  • 二、功能展示
  • 三、原理
  • 四、功能實(shí)現(xiàn)
  • ?小結(jié)

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

“導(dǎo)航” 表示路由正在發(fā)生改變

正如其名,vue-router 提供的導(dǎo)航守衛(wèi)主要用來(lái)通過(guò)跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航。有多種機(jī)會(huì)植入路由導(dǎo)航過(guò)程中:全局的, 單個(gè)路由獨(dú)享的, 或者組件級(jí)的。

記住參數(shù)或查詢的改變并不會(huì)觸發(fā)進(jìn)入/離開(kāi)的導(dǎo)航守衛(wèi)。你可以通過(guò)觀察 $route 對(duì)象來(lái)應(yīng)對(duì)這些變化,或使用 beforeRouteUpdate 的組件內(nèi)守衛(wèi)。

v-router官網(wǎng):https://router.vuejs.org/zh/guide/

我這里用到的是全局前置守衛(wèi)

在路由中可以使用router.beforeEach,注冊(cè)一個(gè)全局前置守衛(wèi)

const router = new VueRouter({ routes }); router.beforeEach((to, from, next) => {  const isover = to.matched.some(record => record.path == "/over")  if (isover || to.path == "/overview") {    if (!store.getters.token) {  // 未登錄      next("/login");       return    }    if (!isHome) {      next();        return    }  } else {    next()  // 無(wú)需登錄驗(yàn)證  }})

當(dāng)一個(gè)導(dǎo)航觸發(fā)時(shí),全局前置守衛(wèi)按照創(chuàng)建順序調(diào)用,守衛(wèi)是異步解析執(zhí)行,此時(shí)導(dǎo)航在所有守衛(wèi)resolve完之前一直處于等待中。
每個(gè)守衛(wèi)方法接收3個(gè)參數(shù)
to: Route:即將要進(jìn)入的目標(biāo) 路由對(duì)象
from: Route :當(dāng)前導(dǎo)航正要離開(kāi)的路由
next: Function : 一定要調(diào)用該方法來(lái)resolve這個(gè)鉤子,執(zhí)行效果依賴next方法的調(diào)用參數(shù)

1.next(): 進(jìn)行管道中的下一個(gè)鉤子。如果全部鉤子執(zhí)行完了,則導(dǎo)航的狀態(tài)就是 confirmed (確認(rèn)的)。
2.next(’/’) 或者 next({ path: ‘/’ }): 跳轉(zhuǎn)到一個(gè)不同的地址。當(dāng)前的導(dǎo)航被中斷,然后進(jìn)行一個(gè)新的導(dǎo)航。你可以向 next 傳遞任意位置對(duì)象,且允許設(shè)置諸如 replace: true、name: ‘home’ 之類的選項(xiàng)以及任何用在 router-link 的 to prop 或 router.push 中的選項(xiàng)。
3.next(error): (2.4.0+) 如果傳入 next 的參數(shù)是一個(gè) Error 實(shí)例,則導(dǎo)航會(huì)被終止且該錯(cuò)誤會(huì)被傳遞給 router.onError() 注冊(cè)過(guò)的回調(diào)。
4.** 確保 next 函數(shù)在任何給定的導(dǎo)航守衛(wèi)中都被嚴(yán)格調(diào)用一次。它可以出現(xiàn)多于一次,但是只能在所有的邏輯路徑都不重疊的情況下,否則鉤子永遠(yuǎn)都不會(huì)被解析或報(bào)錯(cuò) **這里有一個(gè)在用戶未能驗(yàn)證身份時(shí)重定向到 /login 的示例:

// BADrouter.beforeEach((to, from, next) => {  if (to.name !== "Login" && !isAuthenticated) next({ name: "Login" })  // 如果用戶未能驗(yàn)證身份,則 `next` 會(huì)被調(diào)用兩次  next()})
// GOODrouter.beforeEach((to, from, next) => {  if (to.name !== "Login" && !isAuthenticated) next({ name: "Login" })  else next()})

二、功能展示

三、原理

對(duì)于路由的導(dǎo)航動(dòng)態(tài)實(shí)現(xiàn),我們首先要確定我們擁有的路由有哪些,并且對(duì)于命名有一定的良好習(xí)慣。其中最重要的就是在我們的路由里面進(jìn)行設(shè)定,設(shè)置我們的路由守衛(wèi),能對(duì)路由進(jìn)行控制和及時(shí)的更新我們的路由數(shù)據(jù),然后就可以直接在功能實(shí)現(xiàn)區(qū)域進(jìn)行調(diào)用實(shí)現(xiàn)了。

四、功能實(shí)現(xiàn)

1.router文件夾

在router里面引入我們的store

路由守衛(wèi)

// 路由守衛(wèi)router.beforeEach((to, from, next) => {  localStorage.setItem("currentPathName", to.name)  // 設(shè)置當(dāng)前的路由名稱,為了在Header組件中去使用  store.commit("setPath")  // 觸發(fā)store的數(shù)據(jù)更新  next()  // 放行路由})

2.store文件夾

import Vue from "vue"import Vuex from "vuex" Vue.use(Vuex) const store = new Vuex.Store({  state: {    currentPathName: ""  },  mutations: {    setPath (state) {      state.currentPathName = localStorage.getItem("currentPathName")    }  }}) export default store 

3.main.js

import Vue from "vue"import App from "./App.vue"import router from "./router"import store from "@/store";import ElementUI from "element-ui";import "element-ui/lib/theme-chalk/index.css";import request from "@/utils/request";import "./assets/css/global.css"http:// import * as echarts from "echarts"Vue.config.productionTip = false Vue.use(ElementUI,{size: "mini"}); Vue.prototype.request = request; new Vue({  router,  store,  render: h => h(App)}).$mount("#app") 

4.實(shí)現(xiàn)

<template>  <div>    <div>      <span :class="collapseBtnClass"></span>      <el-breadcrumb separator="/"><img src="../assets/images/宿舍管理.png"    ><h3>宿舍后臺(tái)管理</h3>  <el-breadcrumb-item :to=""/"">首頁(yè)</el-breadcrumb-item>  <el-breadcrumb-item>{{ currentPathName }}</el-breadcrumb-item>      </el-breadcrumb>    </div>    <el-dropdown>      <div><img :src="user.avatarUrl"    ><span>{{user.nickname}}</span><i></i>      </div>      <el-dropdown-menu slot="dropdown"><el-dropdown-item>  <span @click="person">個(gè)人信息</span></el-dropdown-item><el-dropdown-item>  <span @click="logout">退出登錄</span></el-dropdown-item>      </el-dropdown-menu>    </el-dropdown>  </div></template> <script>export default {  name: "Header",  props: {    collapseBtnClass: String,    user: Object  },  computed: {    currentPathName () {      return this.$store.state.currentPathName;  //需要監(jiān)聽(tīng)的數(shù)據(jù)    }  },  data() {    return {      user: localStorage.getItem("user") ? JSON.parse(localStorage.getItem("user")) : {}    }  },  methods: {    logout() {      this.$router.push("/login")      this.$message.success("退出成功")    },    person(){      this.$router.push("/mall/person")    }  }}</script> <style scoped> </style>

?小結(jié)

到此這篇關(guān)于Vue實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例的文章就介紹到這了,更多相關(guān)Vue 動(dòng)態(tài)路由導(dǎo)航內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产亚洲电影| 亚洲精品一级二级三级| 国产精品一区二区三区www| 三上亚洲一区二区| 99亚洲视频| 色综合五月天| 免费的成人av| 成人看片网站| 国产亚洲电影| 亚洲综合小说| 亚洲欧洲高清| 波多野结衣久久精品| 亚洲啊v在线| 伊人久久大香线蕉av不卡| 激情自拍一区| 激情婷婷综合| 久久夜色精品| 婷婷亚洲精品| 欧美黑人做爰爽爽爽| 高清一区二区三区av| 久久蜜桃资源一区二区老牛| 夜夜精品视频| 88久久精品| 国产一区二区三区不卡av | 欧美性感美女一区二区| 激情婷婷欧美| 少妇精品在线| 免费日韩一区二区三区| 天堂√中文最新版在线| 亚洲欧洲一区二区天堂久久| 日韩激情一二三区| 福利欧美精品在线| 亚洲综合日本| 欧美精品二区| 欧美成人精品| 亚洲v天堂v手机在线| 欧美国产专区| 欧美特黄视频| 日产欧产美韩系列久久99| 久久伊人久久| 久久午夜视频| 精品久久电影| 久久最新视频| 久久在线91| 午夜宅男久久久| 麻豆国产欧美一区二区三区| 亚洲成av人片一区二区密柚| 婷婷亚洲成人| 日韩在线视频精品| 亚洲视频二区| 日韩国产一区二区| 亚洲精品亚洲人成在线观看| 精品视频黄色| 亚洲一区二区三区无吗| 成人在线黄色| 亚洲天堂免费| 成人国产精品一区二区网站| 久久亚洲美女| 精品久久亚洲| 免播放器亚洲一区| 中文字幕人成乱码在线观看| 亚洲日本免费电影| 久久在线电影| 国产精品1luya在线播放| 激情综合网站| 精品一区二区三区视频在线播放| 99国产一区| 日韩成人综合| 欧美成人精品一级| 日韩在线观看中文字幕| 国产一区亚洲| 精品国产一区二区三区av片| 亚洲欧洲国产精品一区| 日韩黄色大片| 国产日韩一区二区三免费高清| 美女少妇全过程你懂的久久| 麻豆精品av| 日本不卡的三区四区五区| 91成人精品视频| 日本不卡免费高清视频在线| 久久国产三级| 蜜桃免费网站一区二区三区| 日韩中文影院| 成人台湾亚洲精品一区二区| 欧美天堂在线| 男人的天堂久久精品| 久久久精品网| 国产中文欧美日韩在线| 国产欧美日韩一区二区三区四区 | 欧美综合二区| 久久精品国产大片免费观看| 精品一区二区三区视频在线播放 | 中文无码日韩欧| 欧美日韩精品免费观看视频完整| 国产专区精品| 久久99精品久久久野外观看| 青青草精品视频| 亚洲三级av| 热久久国产精品| 中文日韩欧美| 美女毛片一区二区三区四区 | 综合欧美亚洲| 亚洲免费黄色| 免费观看不卡av| 欧美日韩色图| 91精品啪在线观看国产18 | 视频一区二区三区入口| 波多野结衣一区| 色天使综合视频| 日本а中文在线天堂| 91一区二区三区四区| 国产一区二区三区四区| 久久字幕精品一区| 麻豆久久久久久久| 精品一区二区三区的国产在线观看| 国产精品综合| 国产极品嫩模在线观看91精品| 国产精品中文字幕亚洲欧美 | 99精品国产一区二区三区| av中文字幕在线观看第一页| 高清在线一区| 日本а中文在线天堂| 蜜臀久久精品| 激情久久久久久久| 欧美日韩国产在线一区| 在线精品视频在线观看高清| 午夜久久美女| 日韩精品一卡二卡三卡四卡无卡| 免费一级片91| 色综合视频一区二区三区日韩 | 精品中文字幕一区二区三区四区| 国产精品密蕾丝视频下载| 国产精品片aa在线观看 | 久久精品二区三区| 欧美日韩激情在线一区二区三区| 亚洲激情五月| 久久亚洲图片| 亚洲资源网站| 91嫩草精品| 精品视频自拍| 99成人超碰| 日韩精品一二区| 国产一区 二区| 国产在视频一区二区三区吞精| 三级在线看中文字幕完整版| 久久久成人网| 麻豆9191精品国产| 欧美日韩午夜电影网| 久久三级毛片| 久久久久国产精品一区三寸| 午夜精品亚洲| 日韩精品电影一区亚洲| 国产精品久久久久久av公交车| 精品成av人一区二区三区| 蜜臀久久精品| 午夜在线一区| 国产欧美88| 日韩中文首页| 日韩精品一级中文字幕精品视频免费观看 | 99久久久久| 午夜宅男久久久| 91成人精品在线| 都市激情国产精品| 欧美日韩三区| 国产欧美亚洲一区| 色爱av综合网| 免费视频一区二区| 国内自拍视频一区二区三区| 红桃视频欧美| 欧美日韩va| 日韩影院二区| 亚洲开心激情| 国产91在线精品| 男女精品网站| 九九九精品视频| 久久国产99| 国内一区二区三区| 丝袜a∨在线一区二区三区不卡| 国产精品99久久久久久董美香| 久久视频精品| 日韩国产一二三区| 欧洲av不卡| 日本午夜精品视频在线观看| 日韩精品诱惑一区?区三区| 石原莉奈在线亚洲三区| 麻豆91在线播放| 91久久黄色| 国产成人精品三级高清久久91| 蜜臀91精品一区二区三区| 色爱综合网欧美| 日韩激情综合| 欧美+日本+国产+在线a∨观看| 久久激五月天综合精品| 精品日韩毛片| 狠狠久久伊人中文字幕| 亚洲免费毛片| 五月婷婷亚洲| 日本激情一区| 国产无遮挡裸体免费久久| 日韩午夜av|