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

Vue笔记12-新的组件

Fragment

在Vue2中,template标签内,必须有一个div标签,作为根标签。
在Vue3中,可以没有div根标签,如果没有的话,Vue3会将多个标签包装在一个Fragment虚拟元素里。
这么做的目的:减少标签的层级,减少内存占用。

Teleport

<Teleport>是一个内置组件,可以将一个组件内部的模板传送到该组件DOM外部的位置去。
App.vue

<template><div class="outer"><h3>Tooltips with Vue 3 Teleport</h3><div><MyModal/></div></div>
</template>
<script>
import MyModal from "./components/MyModal.vue";export default {name: 'App',components: {MyModal},setup() {}
}
</script>

MyModal.vue

<template><button @click="open = true">Open Modal</button><Teleport to="body"><!--我希望将Teleport包裹的内容,插入到body里面--><div v-if="open" class="modal"><p>Hello from the modal!</p><button @click="open = false">Close</button></div></Teleport>
</template>
<script>
import {ref} from 'vue'export default {name: 'MyModal',setup() {const open = ref(false);return {open}}
}
</script>
<style scoped>
.modal {position: fixed;z-index: 999;top: 20%;left: 50%;width: 300px;margin-left: -150px;border: 1px solid red;
}
</style>

Suspense

<Suspense>是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异步依赖项解析完成,并可以在等待时渲染一个加载状态,需要结合异步依赖,才能看到效果。
为了演示效果,将网络调整为Fast 3G,来查看效果。
Child.vue

<template><div id="Child"><h1>我是子组件</h1></div>
</template>
<script>
export default {name: "Child"
}
</script>
<style scoped>
#Child {background-color: green;padding: 10px;
}
</style>

App.vue

<template><div id="App"><h1>我是父组件</h1><Suspense><template v-slot:default><!--正常加载的时候,展示Child组件--><Child/></template><template v-slot:fallback><!--网速慢,或者加载失败的时候,提示加载中……--><h1>加载中……</h1></template></Suspense></div>
</template>
<script>
// import Child from "./components/Child.vue";// 静态引入
import {defineAsyncComponent} from "vue";const Child = defineAsyncComponent(() => import("./components/Child.vue"));// 异步引入
export default {name: 'App',components: {Child}
}
</script>
<style scoped>
#App {background-color: red;padding: 10px;
}
</style>
http://www.lryc.cn/news/398375.html

相关文章:

  • PySide6开发桌面程序,PySide6入门实战(下)
  • Java面试八股之Redis有哪些数据类型?底层实现分别是什么
  • 分布式应用系统设计:即时消息系统
  • 【YashanDB知识库】调整NUMBER精度,再执行统计信息收集高级包偶现数据库异常退出
  • ComfyUI+MuseV+MuseTalk图片数字人
  • 【Python】从基础到进阶(三):深入了解Python中的运算符与表达式
  • C#的DllImport使用方法
  • 人工智能算法工程师(中级)课程11-PyTorch神经网络之循环神经网络RNN与代码详解
  • 服务端生成RSA密钥实例
  • Maven Nexus3 私服搭建、配置、项目发布指南
  • 东方博宜1627 - 暑期的旅游计划(2)
  • FastAPI 学习之路(三十五)项目结构优化
  • linux源码安装mysql8.0的小白教程
  • 如何评估独立站的外链质量?
  • AI在编程领域的作用
  • 医疗器械网络安全 | 漏洞扫描、渗透测试没有发现问题,是否说明我的设备是安全的?
  • 【GameFramework扩展应用】6-4、GameFramework框架增加AB包加解密功能
  • 通用图形处理器设计GPGPU基础与架构(二)
  • 在一个使用了 Sass 的 React Webpack 项目中安装和使用 Tailwind CSS
  • HDMI简介
  • 原作者带队,LSTM卷土重来之Vision-LSTM出世
  • Fiddler 抓包工具抓https
  • 详细谈谈负载均衡的startupProbe探针、livenessProbe探针、readnessProbe探针如何使用以及使用差异化
  • 守望数据边界:sklearn中的离群点检测技术
  • python工作中遇到的坑
  • 中职网络安全wire0077数据包分析
  • 引领未来:在【PyCharm】中利用【机器学习】与【支持向量机】实现高效【图像识别】
  • 240707-Sphinx配置Pydata-Sphinx-Theme
  • 华为如何做成数字化转型?
  • Python | Leetcode Python题解之第229题多数元素II