首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue-Router在有新组件时动态添加新路由

Vue-Router在有新组件时动态添加新路由
EN

Stack Overflow用户
提问于 2021-04-29 18:17:32
回答 1查看 263关注 0票数 0

我需要创建一个完全模块化的Vue项目,当有新组件或组件被删除时,我不知道如何添加或删除路由。

现在,我静态地键入边栏菜单中可用的所有路由。假设我的侧边栏中有10个菜单,这意味着我应该在routes.js文件中输入10个路由。

但我需要这个项目是模块化的。我说模块化的意思是,我需要给项目提供组件列表,我想我应该用一个.json文件这样做,假设这个文件说它只有5个组件可用,那么相关的路由将在routes.js文件中动态创建,当其中一个被删除时,相关的路由也应该从路由列表中删除。这就是我想要的。

我之所以这样做,是因为我使用Vue为多个设备开发了一个单一的前端。这些设备可能有不同的选项和菜单,当设备和前端匹配时,只有可用的菜单会被放在侧边栏中,所以我不能像我一直在做的那样静态地输入所有的路线。

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-04-29 19:36:31

您可以遍历路由列表并使用路由器动态地将它们添加到您的路由器实例中(需要vue- router.addRoute function 3.5.0+),而不是默认地加载它们。例如,您可以从主布局的created()钩子中执行此操作。

代码语言:javascript
复制
// app.vue

<template>
  <router-view />
</template>

<script>
  export default {
    created() {
      let routes = loadRoutes(); // insert your own function to get the correct routes here
      routes.forEach(route => this.$router.addRoute(route))
    },
  };
</script>

如果您需要能够在同一设备上的不同布局之间切换(比如经理和员工的共享终端),您可以通过creating a new router instanceremoveRoute (如果您使用v4.0+)来重置路由数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67315409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档