概述
最近在开发vue3.x的项目中,配置好路由之后点击跳转页面就出现以下报错:
Uncaught (in promise) TypeError: Cannot read property '__asyncLoader' of undefined
网上也没有找到问题的处理方法,话不多说,直接上处理方法:
辅助函数defineAsyncComponent
Vue 3.x 中,对异步组件的使用跟 Vue 2.x 不同了。变化主要有三点:
- 异步组件声明方法的改变:Vue 3.x 新增一个辅助函数defineAsyncComponent,用来显示声明异步组件;
- 异步组件高级声明方法中的 component 选项更名为loader;
- loader绑定的组件加载函数不再接收resolve和reject参数,而且必须返回一个Promise;
vue3项目中引入组件的写法如下:
import { defineAsyncComponent } from 'vue' // 引入defineAsyncComponent
components: {
child: defineAsyncComponent(_ => import('xxx.vue'))
},
注意:
defineAsyncComponent只适用于vue3的异步组件,对于路由懒加载是无效的。路由懒加载的方法和vue2.x一样。
希望能帮到遇到同样问题的你!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。