面试题答案
一键面试适合懒加载异步组件的场景
- 页面组件体积较大:例如包含大量图表、复杂交互逻辑的组件,将其设置为异步组件,可避免初始加载时下载过大的代码包,提升首屏加载速度。
- 不常使用的组件:如一些特定功能(像用户反馈、高级设置等)的组件,只有在用户特定操作时才会用到,懒加载可以节省初始加载资源。
- 路由组件:对于某些路由对应的页面组件,在路由切换时才加载,而不是在应用启动时就全部加载,减少应用启动时间。
实现组件按需加载的配置方式
- 使用
import()
语法 在Vue单文件组件中,使用ES2020的import()
动态导入语法。例如:
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
const router = new Router({
routes: [
{
path: '/home',
name: 'Home',
component: () => import('./components/Home.vue')
}
]
});
export default router;
这里通过箭头函数包裹import('./components/Home.vue')
来实现组件的异步加载,当路由切换到/home
时才会加载Home.vue
组件。
2. 在组件定义中使用
如果不是在路由中,而是在普通组件内使用异步组件,也可以这样写:
export default {
components: {
AsyncComponent: () => import('./AsyncComponent.vue')
}
}
在模板中使用<AsyncComponent></AsyncComponent>
时,AsyncComponent.vue
组件才会被加载。