来源

写路由时每新建一个路由都需要import一下或其他方式(如箭头函数import)很是麻烦,有麻烦就有需求,于是以下这篇文章就来了

吹水

要想动态注册路由,那么就需要制定规则,即每个路由有一定的规则,来实现动态注册,我的路由文件是放在views下,其中每个vue文件有一个对应的包名

借助vue官网中基础组件的自动化全局注册

vue走你

webpake走你

代码中不难看出归功于webpack的require.context使我们可以获取到文件夹下面的文件,关键点在(files(item).default)获取(不知道怎么取名,望大佬分享下)
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/home/Home.vue'
import Login from '../views/login/Login.vue'
Vue.use(VueRouter) //获取文件,自动挂载在router下
const files = require.context(
// 其组件目录的相对路径
'../views',
// 是否查询其子目录
true,
// 匹配基础组件文件名的正则表达式
/\.vue/
)
let items = [{
path: "",
redirect: "/MenuSystem"
}]; files.keys().forEach(item => {
let name = item.split('/')[2].replace('.vue', "");
items.push({
path: `/${name}`,
component: files(item).default
})
}) const routes = [
{
path: '/Login',
component: Login
},
{
path: '/',
component: Home,
children: [...items]
// children: [{
// path: "",
// redirect: "/MenuSystem"
// }, {
// path: "/MenuSystem",
// component: MenuSystem
// }, {
// path: "/RoleSystem",
// component: RoleSystem
// }, {
// path: "/ActionSystem",
// component: ActionSystem
// }, {
// path: "/SystemAuthority",
// component: SystemAuthority
// }, {
// path: "/MenuAuthority",
// component: MenuAuthority
// }, {
// path: "/PostInfo",
// component: PostInfo
// }
// ]
}, {
path: "*",
redirect: "/"
}
]
// 解决菜单跳转相同路径下报错
const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err);
} const router = new VueRouter({
mode: 'hash',
base: process.env.BASE_URL,
routes
}) export default router

vue-router动态注册的更多相关文章

  1. vue router动态路由

    <div id="#app"> <router-link to="/user/header">路由1</router-link&g ...

  2. Vue动态注册异步组件(非同一个工程的组件)

    前言:最近在掘金逛的时候,无意中看到前滴滴前端架构黄轶大佬,看到了大佬分享的一篇博客滴滴 webapp 5.0 Vue 2.0 重构经验分享 ,对于其中第5个问题(异步加载的业务线组件,如何动态注册? ...

  3. Vue.js 2.x笔记:路由Vue Router(6)

    1. Vue Router简介与安装 1.1 Vue Router简介 Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,构建单页面应用. Vue Rout ...

  4. Vue Router学习笔记

    前端的路由:一个地址对应一个组件 Vue Router中文文档 一.路由基本使用 第1步:导入Vue Router: <script src="https://unpkg.com/vu ...

  5. python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)

    昨日内容回顾 0. 组件注意事项!!! data属性必须是一个函数! 1. 注册全局组件 Vue.component('组件名',{ template: `` }) var app = new Vue ...

  6. vue router 几种方式对比 (转载)

    <div id="app"> <h1>Hello App!</h1> <p> <!-- 使用 router-link 组件来导 ...

  7. [Vue 牛刀小试]:第十二章 - 使用 Vue Router 实现 Vue 中的前端路由控制

    一.前言 前端路由是什么?如果你之前从事的是后端的工作,或者虽然有接触前端,但是并没有使用到单页面应用的话,这个概念对你来说还是会很陌生的.那么,为什么会在单页面应用中存在这么一个概念,以及,前端路由 ...

  8. Vue躬行记(8)——Vue Router

    虽然Vue.js未提供路由功能,但是官方推出了Vue Router(即vue-router库),以插件的形式支持.它与Vue.js深度集成,可快速的创建单页应用(Single Page Applica ...

  9. vue Router——进阶篇

    vue Router--基础篇 1.导航守卫 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的 ...

  10. 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)

    大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置. 其实前端这些框架的 ...

随机推荐

  1. Java设计模式-单例模式Singleton

    介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法). 比如 Hibernate 的 SessionF ...

  2. 【Android 逆向】【攻防世界】easyjni

    1. apk 安装到手机,提示需要输入flag 2. jadx打开apk public class MainActivity extends c { static { System.loadLibra ...

  3. Unity学习笔记--数据持久化XML文件(1)

    XML相关 Xml是可拓展标记语言,一种文件格式.我们使用xml来完成对数据持久化的存储.等待我们有一程序运行结束之后,将内存中的数据进行保存,(保存在硬盘/服务器)实现对数据的持久化存储. xml文 ...

  4. xml开发笔记(一):tinyXml2库介绍、编译和工程模板

    前言   Qt开发Xml相关技术,使用到tinyxml2库.   TinyXML   TinyXML是一个简单的.小的C++的XML解析器,可以集成到其他程序中.它是ROS的标准XML解析器.  最新 ...

  5. Fasfdfs搭建

    目录 介绍 参考 tracker-server: storage-server: group: meta data: 部署 FastDfs服务架构图 本地部署服务 安装 libfastcommon 和 ...

  6. 【Azure APIM】APIM self-host 部署在K8S中,如何更换证书呢?

    问题描述 APIM self-host(自建网关)部署在K8S中,如何在本地上传及更换证书呢? 问题解答 如果使用Self-host网关,则不支持使用上传到 APIM的 CA 根证书验证服务器和客户端 ...

  7. 【Azure 应用服务】使用App Service for Linux/Container时,如果代码或Container启动耗时大于了230秒,默认会启动失败。

    问题描述 使用App Service for Linux/Container时,从Docker的日志中,我们可以看见有 warmup 行为,而此行为默认时间为230秒,如果超出了这个时间,就会导致Co ...

  8. PHP项目&变量覆盖&反序列化&未授权访问&身份验证

    CNVD拿1day-验证&未授权-xhcms&Bosscms 此种漏洞由于没有什么关键函数,所以需要通过功能点去进行测试. Bosscms未授权访问 CNVD官网上搜索Bosscms未 ...

  9. book 电子书转换 在线工具

    https://convertio.co/download/911d3a3f39db0b2e39ed6e3c8acb31f6be786a/ Convertio

  10. Codeforces Round 920 (Div. 3)(A~F)

    目录 A B C D E F A 按题意模拟即可 #include <bits/stdc++.h> #define int long long #define rep(i,a,b) for ...