【发布时间】:2017-07-30 23:43:09
【问题描述】:
我正在尝试构建一个 vuejs 应用程序,该应用程序将包含数百个(如果不是数千个)“表单”或“页面”组件,这些组件都会在动态 <component is=''> 标记中被换出。问题是必须导入每个组件。有没有办法根据路由参数动态导入组件?到目前为止,我有以下内容,但它不起作用:
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const Hello = resolve => require(['@/components/Hello.vue'], resolve)
export default new Router({
routes: [{
path: '/',
name: 'Hello',
component: Hello
}, {
path: '/:name',
name: 'Dynamic',
component : {
template: '<component :is="$route.params.name"></component>',
watch: {
'$route': function(to) {
window[to.params.name] = resolve => require(['@/components/' + to.params.name + '.vue'], resolve)
Vue.component(to.params.name, window[to.params.name])
console.log(to.params.name)
}
}
}
}]
})
【问题讨论】:
-
也许这会有所帮助? gist.github.com/Rich-Harris/ea561810900eedd2a8e9afbc78ddd566 另见 SystemJS github.com/systemjs/systemjs
标签: vue.js vuejs2 vue-component vue-router