vue 异步组件

一见如故

const Xxx = defineAsyncComponent(() => import('./Xxx.vue'))
  • defineAsyncComponent接受一个"返回promise的函数",返回一个外包装的组件AsyncComp,它的使用是vue内部行为
  • 场景:
    1、<AsyncCom v-if=‘flag’ />,让异步组件代码不用立马加载,等需要的时候再加载
    2、AsyncCom + Suspense,让耗时的组件作为异步组件使用,在组件没有完全渲染之前,展示’预展示内容’

<AsyncCom v-if=‘flag’ />场景

  • 如何实现的按需加载
    异步组件使用的import函数,让异步组件的代码单独分割出来;再加上webpack对分割代码的懒加载(flag=true需要的时候才下载相应的代码)
  • 性能上的优化点
    1、非首屏代码不用先加载,加快了首屏渲染
    2、通过异步加载的组件会缓存起来,当下次再用到这个组件时,组件会很快的从缓存中加载出来

AsyncCom + Suspense 场景

// 如果default中不适用异步组件,就不会有'加载中'的展示,直到那个大组件解析完成,才在屏幕上展示
<Suspens>
	<template #default> <AsyncCom/> </template>
	<template #fallback> 加载中 </template>
</Suspense>

全局定义异步组件

app.component('AsyncCom', defineAsyncComponent(() => import('...')))

路由中使用异步组件

{
	path: '',
	name: '',
	component: () => import('../xx.vue')
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值