鍍金池/ 問答/HTML/ vue 動態(tài)添加路由

vue 動態(tài)添加路由

本人在嘗試vue權(quán)限控制,但是在動態(tài)添加路由方面遇到一些問題,代碼如下:
這是main.js文件

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui';
import { powerRouter } from './router';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = false
router.beforeEach( (to,from,next)=>{
  let newrouter;
  newrouter = powerRouter;
 
  router.addRoutes(newrouter)
  console.log(newrouter)
  console.log(router)
  next()

} )

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})


這是路由文件

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Index from '@/components/index'
import Login from '@/components/login'
Vue.use(Router)
const red = { template: '<div style="background-color:#de5b5b;color:#fff; font-size:30px;line-height:100px;text-align:center;">red頁面</div>' }
const yellow = { template: '<div style="background-color:#dee066;color:#fff; font-size:30px;line-height:100px;text-align:center;">yellow頁面</div>' }
const blue = { template: '<div style="background-color:#6680e0;color:#fff; font-size:30px;line-height:100px;text-align:center;">blue頁面</div>' }

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


export const powerRouter = [
  {
    path:'/',
    redirect:'/red',
    name:'Index',
    component:Index,
    children:[
      {
        path:'/red',
        name:'red',
        component:red
      }
    ]
  }
]

現(xiàn)在情況是動態(tài)添加沒反應(yīng) 也沒報什么錯 求指點

回答
編輯回答
淺淺

個人感覺完全沒必要像你這么做,你完全可以給路由攜帶參數(shù)就好了,然后模板里面根據(jù)傳入的參數(shù)對頁面進(jìn)行不同的調(diào)整,詳見https://router.vuejs.org/zh-c...

而且你這所謂的動態(tài)添加路由也只不過是事先寫好了模板,然后需要的時候去調(diào)取而已

2017年9月21日 17:59