说说Vue的动态组件
在动态组件上使用keep-alive
使用<component>
标签或者使用<router-like>
标签默认页面或组件切换的时候,会重新创建组件。
如果应用在频繁切换组件的场景下会很影响性能。
如果要组件切换间,组件不会频繁的创建销毁,那么可以在外层包裹一层keep-alive
标签。实现类似缓存的功能。以此来降低性能消耗和保存页面状态
处理加载状态
const AsyncComponent = () => ({
// 需要加载的组件 (应该是一个 `Promise` 对象)
component: import('./MyComponent.vue'),
// 异步组件加载时使用的组件
loading: LoadingComponent,
// 加载失败时使用的组件
error: ErrorComponent,
// 展示加载时组件的延时时间。默认值是 200 (毫秒)
delay: 200,
// 如果提供了超时时间且组件加载也超时了,
// 则使用加载失败时使用的组件。默认值是:`Infinity`
timeout: 3000
})
注意如果你希望在 Vue Router 的路由组件中使用上述语法的话,你必须使用 Vue Router 2.4.0+ 版本。
然后在组件注册里这样注册就可以用了
components: {
AsyncComponent
}