最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue addRoutes路由動態(tài)加載操作

 更新時間:2020年08月04日 11:12:16   作者:百科全輸  
這篇文章主要介紹了vue addRoutes路由動態(tài)加載操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

需求:增加權(quán)限控制,實現(xiàn)不同角色顯示不同的路由導航

思路:每次登陸后請求接口返回當前角色路由

核心方法:vue-router2.2.0的addRoutes方法 + vuex

以下是我實現(xiàn)的獲取菜單路由的方法,我將該方法的調(diào)用放在首頁組件的生命鉤子中,即便用戶刷新瀏覽器清空了路由還是會重新調(diào)用接口獲取,不至于會丟失。同時考慮到會有切換用戶的可能,所以不將獲取到的路由信息保存到cookie或者localstorage當中

獲取菜單之前先判斷routerState,避免多次請求, 我這里使用element-ui的導航菜單功能v-for循環(huán)this.myRouter參數(shù)即可顯示動態(tài)路由導航

/**
* 獲取菜單
*/
getMenu () {
 if (this.$store.getters.routerState === false) {
 // 清理已經(jīng)存在的動態(tài)路由
 this.clearDynamicRoute()
 // 更改請求路由狀態(tài)為true
 this.$store.commit('SET_ROUTERSTATE', true)
 getMyMenu().then((res) => {
  if (res.code === '0') {
  // 格式化路由,將數(shù)據(jù)轉(zhuǎn)為addRoutes可接受的route格式數(shù)組
  let myMenu = this.formatMenu(res.data.menu)
  if (myMenu.length <= 0) { // 沒有動態(tài)路由
   return
  }
  for (let index = 0; index < myMenu.length; index++) {
   // 將請求的路由先存放到options對象中
   this.$router.options.routes.push(myMenu[index])
  }
  // 將完整需要顯示的路由添加進去
  this.$router.addRoutes(this.$router.options.routes)
  // 這里將路由顯示在頁面上
  this.MyRouter = this.$router.options.routes
  }
  // 在這里就可以打印出新路由
  console.log(this.$router)
 })
 }
}

補充知識:vue+element 進入不同路由頁面(二級頁面),讓相應的左側(cè)菜單

路由配置

{
 path: '/finance',
 name: 'Finance',
 meta: {
 title: '財務'
 },
 component: () =>
 import('@/components/Finance'),
 redirect: '/finance/code/code',
 children: [{
 path: '/finance/code',
 name: 'financeindex',
 meta: {
 title: '稅收配置'
 },
 redirect: '/finance/code/code',
 component: () =>
 import('@/components/finance/financeindex'),
 children: [{
 path: '/finance/code/code',
 name: 'FinanceCode',
 hidden: false,
 active:'/finance/code', //這里是在左側(cè)菜單顯示并且需要選中的
 meta: {
  title: '稅收編碼(金稅)'
 },
 component: () =>
  import('@/components/finance/code/Code'),
 },
 {
 path: '/finance/code/codeimportrecord',  // 這個路由進入的界面是 稅收編碼(金稅)的二級頁面, 當進入這個頁面的時候,需要菜單中的稅收編碼(金稅)顯示選中
 name: 'FinanceCodeImportRecord',
 hidden: true,
 meta: {
 title: '稅收編碼導入記錄'
   },
 component: () =>
 import('@/components/finance/code/CodeImportRecord'),
 },
 {
 path: '/finance/classcode/classcode',
 name: 'FinanceClassCode',
 hidden: false,
 active:'/finance/classcode', //為了省事,只給需要在左側(cè)顯示的路由添加active屬性
 meta: {
  title: '分類稅收編碼確認'
 },
 component: () =>
  import('@/components/finance/classCode/ClassCode'),
 },
 ]
 }, ]

element

<template>
 <div class="leftnav">
 <!--<div class="" v-for="nav in navs">
   <div class="LiHeader">
    {{nav.name}}
   </div>
   <li v-for="item in nav.san">
    {{item.name}}
   </li>
  </div>-->
 <el-menu
  style="text-align: left;"
  :default-active=this.show // 這是的值是指與 el-menu-item中:index的值對應的那一天顯示選中(正常情況就是一個頁面一個路由,進入那個路由,對應的導航菜單需要選中)
  class="el-menu-vertical-demo"
  @open="handleOpen"
  @close="handleClose"
  background-color="#282b33"
  text-color="#bcbcbc"
  active-text-color="#ffffff">
  <div class="" v-for="(nav,index) in navs" :key="index" style="width: 200px;">
  <div class="" style="color: #ffffff;height: 40px;line-height: 40px;padding-left: 20px;font-size: 16px;">
   {{nav.meta.title}}
  </div>
  <el-menu-item @click="clickroute(item.path)" v-for="(item,index) in nav.children" v-if="!item.hidden" :key="index" :index="item.active"(這里原來是item.path) style="height: 40px;line-height: 40px;">{{item.meta.title}}</el-menu-item>
  </div>

 </el-menu>
 </div>
</template>
<script>

js

data() {
  return {
  navs:[],
  show:null //初始化上面:default-active綁定的值
  }
 },
 created() { //// 頁面載入的時候,拿到url,用/拆開,然后拼起來前兩個路徑,并且賦值, 這個時候show對應的就是路由表中的 avtive,
  let route=this.$route.path.split('/')
  let vueRouter=this.$router.options.routes.filter(router=>{return router.path=='/'})[0].children
  let filterVuerouter=vueRouter.filter(router=>{return '/'+route[1] == router.path })
  this.navs=filterVuerouter[0].children
  console.log(this.navs)

  let router ='/'+route[1]+'/'+route[2]
 console.log(router)
  this.show=router
//  console.log(this.show)
 },
 mounted() {

 },

以上這篇vue addRoutes路由動態(tài)加載操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue Element前端應用開發(fā)之樹列表組件

    Vue Element前端應用開發(fā)之樹列表組件

    本篇隨筆主要介紹樹列表組件和下拉列表樹組件在項目中的使用,以及一個SplitPanel的組件。
    2021-05-05
  • 解決Antd 里面的select 選擇框聯(lián)動觸發(fā)的問題

    解決Antd 里面的select 選擇框聯(lián)動觸發(fā)的問題

    這篇文章主要介紹了解決Antd 里面的select 選擇框聯(lián)動觸發(fā)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue-cli3.0 環(huán)境變量與模式配置方法

    vue-cli3.0 環(huán)境變量與模式配置方法

    vue-cli3.0移除了配置文件目錄: config和build文件夾??梢哉f是非常的精簡了,那移除了配置文件目錄后如何自定義配置環(huán)境變量和模式呢?這篇文章主要介紹了vue-cli3.0 環(huán)境變量與模式 ,需要的朋友可以參考下
    2018-11-11
  • vue+echarts圖表使用的問題記錄

    vue+echarts圖表使用的問題記錄

    由于在項目中需要對數(shù)據(jù)進行可視化處理,也就是用圖表展示,眾所周知echarts是非常強大的插件,所以這篇文章主要給大家介紹了關(guān)于vue+echarts圖表使用的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 深入了解Vue動態(tài)組件和異步組件

    深入了解Vue動態(tài)組件和異步組件

    這篇文章主要介紹了深入了解Vue動態(tài)組件和異步組件的相關(guān)資料,幫助大家更好的理解和學習vue組件的相關(guān)知識,感興趣的朋友可以了解下
    2021-01-01
  • vue3?element-plus?實現(xiàn)表格數(shù)據(jù)更改功能詳細步驟

    vue3?element-plus?實現(xiàn)表格數(shù)據(jù)更改功能詳細步驟

    這篇文章主要介紹了vue3 element-plus實現(xiàn)表格數(shù)據(jù)更改功能,本文分步驟結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • vue3+vite實現(xiàn)低版本瀏覽器兼容的解決方案(出現(xiàn)白屏問題)

    vue3+vite實現(xiàn)低版本瀏覽器兼容的解決方案(出現(xiàn)白屏問題)

    項目全線使用vue3的時候,自然使用的是配套更加契合的vite打包工具,于是自然而然會用到很多新的語法,本文給大家介紹了vue3+vite實現(xiàn)低版本瀏覽器兼容的解決方案(出現(xiàn)白屏問題),需要的朋友可以參考下
    2024-04-04
  • Vue項目自動轉(zhuǎn)換 px 為 rem的實現(xiàn)方法

    Vue項目自動轉(zhuǎn)換 px 為 rem的實現(xiàn)方法

    這篇文章主要介紹了Vue項目自動轉(zhuǎn)換 px 為 rem的實現(xiàn)方法,本文是通過一系列的配置后,轉(zhuǎn)換成熱門,具體內(nèi)容詳情大家跟隨小編一起通過本文學習吧
    2018-10-10
  • vue.js入門教程之計算屬性

    vue.js入門教程之計算屬性

    Vue.js 的內(nèi)聯(lián)表達式非常方便,但它最合適的使用場景是簡單的布爾操作或字符串拼接。如果涉及更復雜的邏輯,你應該使用計算屬性。這篇文章我們將一起學習vue.js的計算屬性。什么是計算屬性,為什么要用這東西呢?通過下面這篇文章你將解決這些問題,下面來一起看看吧。
    2016-09-09
  • vue實現(xiàn)導航欄下拉菜單

    vue實現(xiàn)導航欄下拉菜單

    這篇文章主要為大家詳細介紹了vue實現(xiàn)導航欄下拉菜單,帶展開收縮動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評論

凌云县| 绥化市| 仲巴县| 江孜县| 襄樊市| 石景山区| 永泰县| 航空| 洪湖市| 内丘县| 谷城县| 湾仔区| 南乐县| 醴陵市| 包头市| 临朐县| 石河子市| 富源县| 裕民县| 屯留县| 舒城县| 冷水江市| 隆林| 延吉市| 武平县| 内乡县| 永平县| 哈密市| 玛多县| 麦盖提县| 江城| 乐都县| 东港市| 霍林郭勒市| 读书| 宁德市| 上饶市| 凤台县| 阳曲县| 葵青区| 黔江区|