vue-cli3 使用 addRoutes 动态添加路由不成功。

发布于 2022-09-11 21:54:46 字数 1120 浏览 11 评论 0

问题描述:最新使用vue-cli3搭建项目,几乎是从零开始,要根据登录返回的菜单信息动态添加到项目的路由,但是一直不成功

之前老项目使用是好使的,现在我新项目按照之前的方法就是不成功,也不知道怎么回事

main.js

import Vue from 'vue'
import router from '@/router'
import App from './App.vue'
import "@/assets/styles/index.css"
import "@/assets/font/iconfont.css"

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  router
}).$mount('#app')

router.js

import Vue from 'vue'
import Router from 'vue-router'
import login from '@/views/login'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      component: login
    }
  ]
})

addroutes

checkJs (mks) {
  let menu = mkTree(mks)
  setLocalStorage('mks', JSON.stringify(mks))
  setLocalStorage('menu', JSON.stringify(menu))
  let addRoutes = [{
    path: '/home',
    component: require('./home.vue'),
    isMenu: true,
    children: menu
  }]
  this.$router.addRoutes(addRoutes)
  this.$router.push({path: '/home'})
}



我感觉是component: require('./home.vue'),这一行代码问题,因为home文件是没有渲染进去的,期待了解的伙伴帮忙解答一下

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅气称霸 2022-09-18 21:54:46
checkJs (mks) {
  let menu = mkTree(mks)
  setLocalStorage('mks', JSON.stringify(mks))
  setLocalStorage('menu', JSON.stringify(menu))
  let addRoutes = [{
    path: '/home',
    component: () => import('./home.vue'),
    isMenu: true,
    children: menu
  }]
  this.$router.addRoutes(addRoutes)
  this.$router.push({path: '/home'})
}
許願樹丅啲祈禱 2022-09-18 21:54:46
const router = new Router({
  routes: [
    {
      path: '/',
      name: '首页',
      component: () => import('@/views/Template.vue'),
      redirect: '/index',
      meta: {auth: true}
    },
    {
      path: '/login',
      name: 'login',
      component: () => import('@/views/Login.vue'),
      meta: {auth: false}
    }
  ]
})
router.beforeEach((to, from, next) => {
  next()
})
router.afterEach((to, from, next) => {
  let routerArr = [{
    name: 'modules',
    path: '/modules',
    component: () => import('@/views/index.vue'),
    children: []
  }]
  router.addRoutes(routerArr)
  router.push({path: '/login'})
})
export default router

求问我这种路由为啥添加,打印还是没有添加进去?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文