Vue根據菜單json數據動態按需加載路由Vue-router

每個菜單項對應一個頁面組件,根據菜單項動態按需加載路由

路由配置的正確寫法:

/*router/index.js*/
import Vue from 'vue'
import Router from 'vue-router'
import url from './url'
import store from '../store'Vue.use(Router)const router = new Router({// mode: 'history',routes: url,scrollBehavior (to, from, savedPosition) {return {x: 0,y: 0}}
})router.beforeEach(({ meta, path, name }, from, next) => {let { auth = true } = metalet isAdmin = localStorage.getItem('admin')let isLogin = Boolean(isAdmin) // true已登錄, false未登錄if (auth && !isLogin && path !== '/login') {return next({ path: '/login' })}if (!auth && isLogin && path === '/login') {return next({ path: '/home' })}store.dispatch('CUR_MENU', name)next()
})export default router
復制代碼
/*router/url.js*/
import data from '../store/data.json'
const Layout = () => import('@/pages/layout')
const Login = () => import('@/pages/login')
const NotFound = () => import('@/pages/notFound')function getChildrenPath () {let childrenPath = []for (let i in data) {let sub = data[i].subMenufor (let j in sub) {let component = () => import('@/pages' + sub[j].path + '/index.vue')const item = {path: sub[j].path,name: sub[j].name,component: component}childrenPath.push(item)}}return childrenPath
}const url = [{path: '/',component: Layout,children: getChildrenPath()
}, {path: '/login',meta: {auth: false},name: '登錄頁',component: Login
}, {path: '*',name: '404頁',component: NotFound
}]export default url
復制代碼

重點:let component = () => import('@/pages' + sub[j].path + '/index.vue')

動態路徑寫法,不能省略/index.vue

省略的話不會報錯,頁面加載也正常,但是會彈警告:

參考: vue-router無法實現按需加載動態組件,有什么替代方案可以解決這一需求呢?

轉載于:https://juejin.im/post/5a6a8f13518825732b1a0c9f

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284305.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ArcGIS微課1000例】0047:制圖表達(2)---河流漸變效果的實現

當我們在ArcMap中加載河流數據時,得到的效果往往如圖所示,僅僅是表示河流位置的線要素,既無法真實地反映河流的實際情況,同時在出圖的時候也遠沒有任何美化效果。 文章目錄 1.創建制圖表達2.添加幾何效果3.使用制圖規則4.使用制圖表達屬性覆蓋警告:這些操作會對您的數據庫…

操作系統思考 第二章 進程

第二章 進程 作者:Allen B. Downey 原文:Chapter 2 Processes 譯者:飛龍 協議:CC BY-NC-SA 4.0 2.1 抽象和虛擬化 在我們談論進程之前,我打算先定義幾個東西: 抽象(Abstraction)&…

1 句代碼,搞定 ASP.NET Core 綁定多個源到同一個類

問題有群友希望將路由中的信息綁定到一個Dto對象中:public class DDDDDto {[FromRoute(Name "collectionId")]public Guid collectionId { get; set; }[BindProperty(Name "relativeUrl")]public string relativeUrl { get; set; } }這樣就不用…

redux中間件的用法

1.定義 中間件就是一個函數,對store.dispatch方法進行了改造,在發出 Action 和執行 Reducer 這兩步之間,添加了其他功能。 2.舉例 日志中間件 import { applyMiddleware, createStore } from redux; import createLogger from redux-logger; …

設置git自動補全功能(windows版本)

目錄 下載 Git 的源代碼 在目錄中 git/contrib/completion/ 中找到 git-completion.bash 文件 將 git-completion.bash 文件改名為 .git-completion.bash 找到本機git安裝目錄 將.git-completion.bash文件復制到git安裝目錄下的etc文件夾 打開同目錄下的 bash.bashrc 文件&…

用Vue搭建一個應用盒子(二):datetime-picker

接著上次的進度,我們已經實現了一個todo-list。它已經具備了基本的功能,可以新建、編輯、刪除任務。但是美中不足的是,它的時間設定上只能通過輸入一段字符串來設定,很不社會。我們應該完成的效果是一個time-picker,日…

ArcGIS實驗教程——實驗四十八:ArcGIS制圖表達入門及案例教程

文章目錄 1. 制圖表達的概念1.1 什么是地圖表達1.2 使用制圖表達改善要素外觀1.3 制圖表達的優點2. 使用制圖表達2.1 創建制圖表達2.2 使用制圖表達來符號化圖層2.3 使用制圖表達規則3. 地圖表達實戰案例1.創建制圖表達2.添加幾何效果3.使用制圖規則4.使用制圖表達屬性覆蓋1. 制…

PAT (Advanced Level) 1070. Mooncake (25)

簡單貪心。先買性價比高的。 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<stack> #include<queue> #include<string> #include<algorithm> using namespace std;doub…

[轉]Java 18 還未用上,Java 19 最新兩大特性曝光

鐵打的 Java&#xff0c;流水的版本。 不久前&#xff0c;Java 18 才正式發布&#xff0c;遵循 Oracle 六個月發一版本的頻率&#xff0c;Java 19 將在今年 9 月出爐。這不&#xff0c;還沒等眾多開發者用上 Java 18&#xff0c;關于 Java 19 最新的兩個目標功能就被披露了出…

文本生成器(bzoj 1030)

Description JSOI交給隊員ZYX一個任務&#xff0c;編制一個稱之為“文本生成器”的電腦軟件&#xff1a;該軟件的使用者是一些低幼人群&#xff0c;他們現在使用的是GW文本生成器v6版。該軟件可以隨機生成一些文章―――總是生成一篇長度固定且完全隨機的文章—— 也就是說&…

C# 值類型和引用類型講解

要了解值類型和引用類型&#xff0c;我們首先要知道堆和棧的區別&#xff1a;① 棧是編譯期間就分配好的內存空間&#xff0c;因此你的代碼中必須就棧的大小有明確的定義&#xff1b;堆是程序運行期間動態分配的內存空間&#xff0c;你可以根據程序的運行情況確定要分配的堆內存…

【ArcGIS微課1000例】0048:制圖表達(3)---水立方效果實現

本文講解ArcGIS中水立方效果的實現過程(制圖表達案例)。 文章目錄 一、效果展示二、制作步驟1. 創建數據庫及要素數據集2. 創建范圍3. 創建隨機點4. 創建泰森多邊形5. 創建制圖表達一、效果展示 基于制圖表達的思想,可以容易實現多種形式的水立方效果,例如: 怎么實現的呢…

Java中this與super的區別

2019獨角獸企業重金招聘Python工程師標準>>> this與super關鍵字在java中構造函數中的應用&#xff1a; ** super()函數 ** super()函數在子類構造函數中調用父類的構造函數時使用&#xff0c;而且必須要在構造函數的第一行&#xff0c;例如&#xff1a; class Ani…

EF選擇Mysql數據源

EF添加ADO.NET實體模型處直接選擇Mysql數據源 最近想到EF是連接多數據庫的orm框架&#xff0c;于是就想測試下。查了一堆網上資料后&#xff0c;測試連接mysql成功。步驟如下&#xff1a; 1、在你項目Model層中nuget安裝MySql.Data.Entity 如果沒安裝這個provider 就進行下面的…

JIRA簡介及基本概念

目錄 第一章 JIRA簡介 1.1 什么是JIRA 1.2 JIRA的主要功能 1.3 JIRA的主要特點 1.3.1 JIRA的優點 1.3.2 JIRA的缺點 1.4 相關版本 第二章 JIRA的基本概念 2.1 JIRA 中涉及的角色 2.1.1 管理人員 2.1.2 項目管理者 2.1.3 開發人員 2.1.4 測試人員 2.2 問題 2.2.1…

CodeChef Chef and Churu [分塊]

題意&#xff1a; 單點修改$a$ 詢問$a$的區間和$f$的區間和 原來普通計算機是這道題改編的吧... 對$f$分塊&#xff0c;預處理$c[i][j]$為塊i中$a_j$出現幾次&#xff0c;$O(NH(N))$&#xff0c;只要每個塊差分加上然后掃一遍就行了不用樹狀數組之類的 修改&#xff0c;整塊直接…

SkiaSharp 之 WPF 自繪 拖曳小球(案例版)

感謝各位大佬和粉絲的厚愛和關心( 催更)&#xff0c;我會再接再厲的&#xff0c;其實這也是督促自己的一種方式&#xff0c;非常感謝。剛寫了一篇萬字長文&#xff0c;自己也休養生息(低調發育)了一段時間&#xff0c;接下來來幾個小案例。拖曳小球WPF的拖曳效果&#xff0c;基…

Nodejs Guides(四)

EVENTS events模塊API實例 const EventEmitter require(events);class MyEmitter extends EventEmitter { } //EventListener 會按照監聽器注冊的順序同步地調用所有監聽器。 //所以需要確保事件的正確排序且避免競爭條件或邏輯錯誤。 //監聽器函數可以使用 setImmediate() 或…

[轉]常用自動化測試工具

1、Appium 官網&#xff1a;http://appium.io AppUI自動化測試 Appium 是一個移動端自動化測試開源工具&#xff0c;支持iOS 和Android 平臺&#xff0c;支持Python、Java 等語言&#xff0c;即同一套Java 或Python 腳本可以同時運行在iOS 和Android平臺&#xff0c;Appium 是…

ABP學習資源整理

不同的編程語言都有構建Web Application的框架&#xff0c;比如C#中的ASP.NET Core和ABP&#xff0c;Java中的Spring Boot和Spring Cloud&#xff0c;Python中的Django和Flask&#xff0c;Node.js中的Express和Koa2&#xff0c;Go中的Beego和Gin等。今天要介紹的主角是ABP框架&…