首页 >> js开发 >> js详解vue-router的Import异步加载模块问题的解决方案js大全
js详解vue-router的Import异步加载模块问题的解决方案js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
1、问题现象1、问题现象2、出现问题的代码点2、出现问题的代码点3、替代方案:3、替代方案:把import() 替换成如下:import()
Promise.resolve().then(()=>require(`@/views/${str}`))
Promise.resolve().then(()=>require(`@/views/${str}`))4、原因分析4、原因分析项目在编译时,出现一个警告
这个警告的含义:
require接收了一个变量,会报上面的警告,接收一个写死的字符串值时则没有警告!我们通过控制台查看到import()对应编译过后的代码:
从上图可以看到require接收了一个变量,所以运行时出现了警告。那这样就会报上面找不到对应的模块。那我们再来看一个import()正确编译过后的代码:
通过对比编译过后的代码,可以轻易发现不同点。花了大量时间,去找node_modules中的那个包版本不一致导致的,有一次尝试成功了, 但回想不起是哪一步操作的呢,再复现的时候,也没对了。先暂时搁置吧,希望对webpack和Babel熟悉的大佬看到,能指点一二了。所以根据编译过后的代码,以及require的特性,尝试出了一个临时解决方案。
Promise.resolve().then(()=>require(`@/views/${str}`))
Promise.resolve().then(()=>require(`@/views/${str}`))4、原因分析4、原因分析项目在编译时,出现一个警告
这个警告的含义:
require接收了一个变量,会报上面的警告,接收一个写死的字符串值时则没有警告!我们通过控制台查看到import()对应编译过后的代码:
从上图可以看到require接收了一个变量,所以运行时出现了警告。那这样就会报上面找不到对应的模块。那我们再来看一个import()正确编译过后的代码:
通过对比编译过后的代码,可以轻易发现不同点。花了大量时间,去找node_modules中的那个包版本不一致导致的,有一次尝试成功了, 但回想不起是哪一步操作的呢,再复现的时候,也没对了。先暂时搁置吧,希望对webpack和Babel熟悉的大佬看到,能指点一二了。所以根据编译过后的代码,以及require的特性,尝试出了一个临时解决方案。
相关文章:
- js使用React-Router实现前端路由鉴权的示例代码js大全
- js解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题js大全
- JavaScript深入了解Vue.js 混入(mixins)
- js解决父组件将子组件作为弹窗调用只执行一次created的问题js大全
- jsvuex中store存储store.commit和store.dispatch的用法js大全
- jsvue+axios全局添加请求头和参数操作js大全
- jsvue data对象重新赋值无效(未更改)的解决方式js大全
- jsVue中的this.$options.data()和this.$data用法说明js大全
- jsVue-CLI 3 scp2自动部署项目至服务器的方法js大全
- js代码javascript递归函数定义和用法示例分析