• Vue引入异步组件


    defineAsyncComponent 函数:异步引入组件。

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

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

     异步引入组件:

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

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

    1. <Suspense>
    2. <template v-slot:default>
    3. <Child>Child>
    4. template>
    5. <template v-slot:fallback>
    6. <h3>加载中,请稍等...h3>
    7. template>
    8. Suspense>

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

    异步引入组件的作用:

    创建 Child 子组件:

    1. <script>
    2. export default {
    3. name: "Child"
    4. }
    5. script>
    6. <style scoped>
    7. .child {
    8. background-color: red;
    9. padding: 10px;
    10. }
    11. style>

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

    1. <template>
    2. <div class="parent">
    3. <h3>我是Parent组件(父组件)h3>
    4. <Child>Child>
    5. div>
    6. template>
    7. <script>
    8. // 静态引入【同步引入】
    9. import Child from '../components/Child';
    10. export default {
    11. name: "Parent",
    12. components: { Child }
    13. }
    14. script>
    15. <style scoped>
    16. .parent {
    17. background-color: aqua;
    18. padding: 10px;
    19. }
    20. style>

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

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

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

    1. <template>
    2. <div class="parent">
    3. <h3>我是Parent组件(父组件)h3>
    4. <Child>Child>
    5. div>
    6. template>
    7. <script>
    8. // 引入 defineAsyncComponent 函数
    9. import { defineAsyncComponent } from 'vue';
    10. // 动态引入【异步引入】
    11. const Child = defineAsyncComponent(() => {
    12. return import('../components/Child.vue');
    13. });
    14. export default {
    15. name: "Parent",
    16. components: { Child }
    17. }
    18. script>
    19. <style scoped>
    20. .parent {
    21. background-color: aqua;
    22. padding: 10px;
    23. }
    24. style>

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

     

    原创作者:吴小糖

    创作时间:2023.10.27

  • 相关阅读:
    fastJson问题
    框架安全-CVE 复现&Apache Shiro&Apache Solr漏洞复现
    【Spring Cloud】新闻头条微服务项目:自媒体文章管理
    每日五道java面试题之spring篇(三)
    计算机竞赛 基于深度学习的人脸表情识别
    Spring MVC 和 @ModelAttribute 注释
    一、初识 Robot Framework
    浅谈链游的未来:可定制性、身份和社交层
    MyBatis多条件查询、动态SQL、多表操作、注解开发详细教程
    【人民币识别】人民币序列号识别【含GUI Matlab源码 908期】
  • 原文地址:https://blog.csdn.net/xiaowude_boke/article/details/134081194