【发布时间】:2019-04-23 16:26:33
【问题描述】:
我有很多组件,我想按需导入。我有一个下拉列表,其中实际上包含组件列表,即要加载的内容。我试过这个例子
<component :is="componentLoader"></component>
在脚本中
componentLoader () {
return () => import('@/components/testDynamic')
}
testDynamic 是一个组件名称(现在我正在尝试使用静态组件)。
收到此错误
GET http://localhost:8080/0.js net::ERR_ABORTED 404
[Vue warn]: Failed to resolve async component: function () {
return __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, "./src/components/testDynamic.vue"));
}
Reason: Error: Loading chunk 0 failed.
如何解决这个问题?我做错什么了吗?还是有其他方法可以动态导入组件?
【问题讨论】:
-
也许可以试试
return () => require('@/components/testDynamic') -
或者,注册他们globally
-
require 不会抛出任何错误,但它不会渲染任何东西。
-
@Andrew1325 全局注册的意思是,它将加载全局级别的所有组件,所有组件一次加载,可以在任何地方使用。但是它们最初都立即加载吗?我希望它仅按需导入。
-
你在编译你的模板吗?因为也许它想在错误的地方导入,我建议尝试加载所有 50 个组件,看看它到底有多大,看看你是否需要像你认为需要的那样的解决方案......如果你真的需要它,我认为您必须单独生成/编译每个模板,然后将导入指向您放置它们的任何位置...
标签: javascript vue.js