vue3新的组件

news/2025/3/13 4:05:26/

1.Fragment

- 在Vue2中: 组件必须有一个根标签
- 在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中
- 好处: 减少标签层级, 减小内存占用

 没有写根标签,也没有报错,如果是在v2中,我们还需要用一个div来包裹它

事件上是放在一个fragment里面的,因此可以使用多个标签

2.Teleport 

teleport英文中有翻译的意思

  看一下这个页面存在的问题,这个弹窗处于孙子组件的里面。而页面展示的时候还会撑开盒子大小。而我们想要的效果的弹窗处于页面中间,不影响其他组件的运行

而我们就可以使用teleport

 我们把需要传送走的内容放到teleport标签内部,使用to指向它要传送到的地址,我们这里测试一下用body

 很明显传送到body里面了

实现功能

<template><div><button @click="isShow=true">点我弹窗</button><teleport to="body"><div class="mask" v-if="isShow"><div  class="dialog"><h3>我是一个弹窗</h3><h4>一些内容</h4><h4>一些内容</h4><h4>一些内容</h4><button @click="isShow=false">关闭弹窗</button></div></div></teleport></div>
</template><script>
import {ref} from 'vue'
export default {name:'Dialog',setup(){let isShow=ref(false)return {isShow}}
}
</script><style>
.mask{position: absolute;top: 0;bottom: 0;left: 0;right: 0;background-color: rgba(0,0,0,0.5);
}
.dialog{text-align: center;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 300px;height: 300px;background-color: green;
}
</style>

 感觉这个效果也可以做一个广告的效果

3.Suspense

Suspendse中文有悬念的意思

 用这个组件来讲清楚Suspendse的内容。首先这俩个都是静态引入,这俩个组件是一起出来的。

然后我们用动态组件的方式来引入它试试看

 这叫动态引入,也叫异步引入

然后是app先出来,然后是child出来

但又一点不好,就是网速很慢的时候,最后的迟迟不出来,用户可能以为没有这个组件,因此我们要解决这个问题,也就是使用suspense

在 suspense里面有俩个插槽,<template v-slot:default><Child/></template>放得成功显示的

<template v-slot:fallback><h3>加载中……</h3></template>类型,加载中,显示的内容

 因为我们是异步引入,那么我们就可以使用promise对象来玩,上面的红框的代码实现的效果就是延迟3秒后出来

总结:

- 等待异步组件时渲染一些额外内容,让应用有更好的用户体验
- 使用步骤:

异步引入组件

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

 使用 Suspense 包裹组件,并配置好 default 与 fallback

<template><div class="app"><h3>我是App组件</h3><Suspense><template v-slot:default><Child/></template><template v-slot:fallback><h3>加载中.....</h3></template></Suspense></div>
</template>

http://www.ppmy.cn/news/48150.html

相关文章

Android监听消息(二)——电话及短信监听

学更好的别人&#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为2747字&#xff0c;预计阅读6分钟 前言 前面一篇《Android监听消息&#xff08;一&#xff09;——应用消息捕获》我们使用NotificationListenerService实现了应用的消息监听&#xff0c;但是电话和短信是…

WPF教程(二)--Application WPF程序启动方式

1.Application介绍 WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作&#xff0c;并且每个 Domain &#xff08;应用程序域&#xff09;中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.…

软考-项目管理科学基础(二十一)

第21章项目管理科学基础 (P607考5分择) 21.1.2项目经济评价 根据是否考虑资金的时间价值&#xff0c;投资项目经济评价方法可分为两类:静态评价和动态评价。 1.静态评价方法 静态评价是指在进行项目方案效益和费用的计算时&#xff0c;不考虑资金的时间价值&#xff0c;不计利…

CMD命令学习整理

01、定时关机 倒计时&#xff1a;shutdown -s -t 3600 解释&#xff1a;-s表示本机&#xff1b;-t 3600表示3600秒后。意思就是本台电脑在一个小时后关机 at 12:00 shutdown -s 表示本台电脑将在12点关机。大家可以按照自己的需求设置。 取消&#xff1a;shutdown -a 取消关…

设计模式-行为型模式之中介者模式

2. 中介者模式 2.1. 模式动机 在用户与用户直接聊天的设计方案中&#xff0c;用户对象之间存在很强的 关联性&#xff0c;将导致系统出现如下问题&#xff1a; 系统结构复杂 对象之间存在大量的相互关联和调用&#xff0c;若有一个对象发生变化&#xff0c;则需要跟踪和该对象关…

苹果撤离中国市场?中国市场太重要,印度制造是备胎

苹果在中国之行后&#xff0c;却计划进一步扩大印度制造iPhone的比例&#xff0c;甚至将iPhone15全数交给印度制造&#xff0c;业界因此认为苹果正在离开中国市场&#xff0c;然而这完全是臆想&#xff0c;中国市场对苹果来说仍然非常重要&#xff0c;它不会轻易舍弃这个市场。…

进程和线程的区别

进程和线程的区别 进程线程线程和进程的区别堆栈空间安全性通信机制 什么时候使用进程和线程线程和进程之间的关系多线程一般用在哪些方面多线程的优点多线程的缺点 进程 资源分配的最小单元 线程 程序执行的最小单元 系统分配处理器时间的基本单元 线程和进程的区别 堆栈…

( “树” 之 BFS) 637. 二叉树的层平均值 ——【Leetcode每日一题】

637. 二叉树的层平均值 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 1 0 − 5 10^{-5} 10−5 以内的答案可以被接受。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[3.00000,14.50000,1…