解决vue动态加载组件import引入组件找不到组件(Error: Cannot find module)
更新时间:2026年04月29日 08:53:45 作者:TTong___
文章描述了一个项目中动态加载组件的方法,使用import()语法时,由于其在编译时确定路径的特性,不能使用变量,需要使用webpack的require.ensure()方法,可以接受变量参数并返回Promise对象,此问题的解决方案是使用require.ensure()方法来引入动态组件
使用场景
在一个项目中封装了好多组件,根据接口返回不同类型值在页面中动态加载对应的组件。
问题描述
使用了动态加载组件的方法,组件用 import() 引入时,直接写成静态路径组件能找到,但是路径里面使用了变量组件就找不到了,报错 Error:Cannot find module

问题原因
import() 语法是 ES6 中新引入的动态加载模块的语法,它可以在运行时加载模块,返回一个 Promise 对象,可以用来加载不同的模块。
所以import()语法本身是一个函数,其中可以传入一个字符串,用来表示要加载的模块的路径,但是不能传入变量,因为变量的值在运行时可能会改变,而import()语法是在编译时就已经确定的,所以不能传入变量。
解决方案
使用 webpack 的 require.ensure() 方法引入组件,它可以接受变量作为参数,并且可以返回 Promise 对象
return () => require.ensure([], (require) => require(`./components/${type}.vue`))
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
vue实现表单验证功能
这篇文章主要为大家详细介绍了vue实现表单验证功能,基于NUXT的validate方法实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2021-08-08
Vue 3.0自定义指令的使用入门
在 Vue 的项目中,我们经常会遇到 v-if、v-show、v-for 或 v-model 这些内置指令,它们为我们提供了不同的功能。除了使用这些内置指令之外,Vue 也允许注册自定义指令。接下来,将使用Vue 3官方文档自定义指令章节中使用的示例,来一步步揭开自定义指令背后的秘密。
2021-05-05
Vue中添加滚动事件设置的方法详解
这篇文章主要给大家介绍了关于Vue中添加滚动事件设置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2020-09-09
Vue实现插槽下渲染dom字符串的使用
本文主要介绍了Vue实现插槽下渲染dom字符串的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-04-04
vue实现的下拉框功能示例
这篇文章主要介绍了vue实现的下拉框功能,涉及vue.js数据读取、遍历、事件响应等相关操作技巧,需要的朋友可以参考下
2019-01-01
最新评论