当前位置: 首页 > news >正文

Vue引入异步组件

defineAsyncComponent 函数:异步引入组件。

Suspense 标签:异步引入组件时,显示默认的内容。

 异步引入组件的基本使用:

 异步引入组件:

import { defineAsyncComponent } from 'vue';
const Child = defineAsyncComponent(() => {return import('../components/Child.vue');
});

设置组件默认显示的内容:

<Suspense><!-- 如果组件加载成功,就显示 default 中的内容 --><template v-slot:default><Child></Child></template><!-- 如果组件正在加载中,就显示 fallback 中的内容 --><template v-slot:fallback><h3>加载中,请稍等...</h3></template>
</Suspense>

:Suspense 标签中有两个插槽 default 和 fallback,插槽名是固定的,不能随意更改。

异步引入组件的作用:

创建 Child 子组件:

<template><div class="child"><h3>我是Child组件(子组件)</h3></div>
</template><script>
export default {name: "Child"
}
</script>
<style scoped>
.child {background-color: red;padding: 10px;
}
</style>

创建 Parent 父组件:通过静态引入的方式使用 Child 组件。

<template><div class="parent"><h3>我是Parent组件(父组件)</h3><Child></Child></div>
</template><script>
// 静态引入【同步引入】
import Child from '../components/Child';
export default {name: "Parent",components: { Child }
}
</script><style scoped>
.parent {background-color: aqua;padding: 10px;
}
</style>

:在控制台的 Network 中,将网络调成 Slow 3G(慢的 3G 网络)。刷新页面后,我们会发现父组件和子组件是一起显示的。

:假如子组件中的数据量特别大,那么静态引入时,也会导致父组件延迟显示。

修改 Parent 父组件:通过异步引入的方式使用 Child 组件。

<template><div class="parent"><h3>我是Parent组件(父组件)</h3><Child></Child></div>
</template><script>
// 引入 defineAsyncComponent 函数
import { defineAsyncComponent } from 'vue';
// 动态引入【异步引入】
const Child = defineAsyncComponent(() => {return import('../components/Child.vue');
});
export default {name: "Parent",components: { Child }
}
</script><style scoped>
.parent {background-color: aqua;padding: 10px;
}
</style>

:同样调成 Slow 3G 网络,我们会发现父组件显示出来之后,子组件才显示。

 

原创作者:吴小糖

创作时间:2023.10.27

相关文章:

  • C#列表List的创建与使用
  • 阿里蚂蚁淘宝等多次一面面试面经
  • AM@积分上限的函数及其导数@微积分第一基本定理@原函数存在定理
  • Qt配置OpenCV教程,亲测已试过
  • 一键添加命名前缀(文件)
  • 自动驾驶的未来展望和挑战
  • liunx Centos-7.5上 rabbitmq安装
  • c++ qt连接操作sqlite
  • C++深度优先(DFS)算法的应用:收集所有金币可获得的最大积分
  • 算法随想录算法训练营第四十六天| 583. 两个字符串的删除操作 72. 编辑距离
  • 阿里云企业邮箱基于Spring Boot快速实现发送邮件功能
  • nginx加权轮询,upstream,Keepalive,负载均衡实现案例
  • linux-磁盘应用
  • WSL——ubuntu中anaconda换源(conda、pip)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • 时间复杂度分析经典问题——最大子序列和
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Brief introduction of how to 'Call, Apply and Bind'
  • FineReport中如何实现自动滚屏效果
  • JavaScript DOM 10 - 滚动
  • JAVA并发编程--1.基础概念
  • js ES6 求数组的交集,并集,还有差集
  • JS字符串转数字方法总结
  • Linux快速复制或删除大量小文件
  • Median of Two Sorted Arrays
  • Mysql5.6主从复制
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SQLServer之创建显式事务
  • Vue 2.3、2.4 知识点小结
  • 大主子表关联的性能优化方法
  • 动态魔术使用DBMS_SQL
  • 配置 PM2 实现代码自动发布
  • 七牛云假注销小指南
  • 使用 Docker 部署 Spring Boot项目
  • 温故知新之javascript面向对象
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • !!Dom4j 学习笔记
  • !!java web学习笔记(一到五)
  • #QT(一种朴素的计算器实现方法)
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三)终结任务
  • (转)3D模板阴影原理
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转载)(官方)UE4--图像编程----着色器开发
  • ./configure,make,make install的作用(转)
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .net core 6 集成和使用 mongodb
  • .net的socket示例
  • .NET框架设计—常被忽视的C#设计技巧