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

vue3内置组件的功能介绍与用法

1. <component> - 动态组件(组件变身器)

<template><component :is="currentComponent" />
</template>
<script setup>
import ComponentA from './ComponentA.vue'
import ComponentB from './ComponentB.vue'const currentComponent = ref('ComponentA') // 可以切换为 ComponentB
</script>

通俗理解:可以根据条件切换显示不同的组件,就像给你的页面加了个“变形按钮”。

2. <Transition> - 过渡动画(优雅的入场退场)

  1. Transition 的 6 个类名:

    • v-enter-from:进入前

    • v-enter-active:进入中

    • v-enter-to:进入后

    • v-leave-from:离开前

    • v-leave-active:离开中

    • v-leave-to:离开后

<template><button @click="show = !show">切换</button><Transition name="fade"><p v-if="show">我会淡入淡出</p></Transition>
</template><style>
.fade-enter-active, .fade-leave-active {transition: opacity 0.5s;
}
.fade-enter-from, .fade-leave-to {opacity: 0;
}
</style>

通俗理解:给元素的显示/隐藏加上动画效果,就像电影里的淡入淡出。

3. <TransitionGroup> - 列表过渡(集体舞动画)

<template><TransitionGroup name="list" tag="ul"><li v-for="item in items" :key="item.id">{{ item.name }}</li></TransitionGroup>
</template>

通俗理解:当列表元素增加、删除或移动时,给所有元素加动画,就像排队的人有秩序地移动。

4. <KeepAlive> - 组件缓存(记忆组件)

<template><KeepAlive><component :is="currentTab" /></KeepAlive>
</template>

通俗理解:切换组件时保留它的状态(比如表单输入的内容),而不是每次都重新创建。

5. <Teleport> - 传送门(任意门)

<template><button @click="showModal = true">打开弹窗</button><!-- 把弹窗传送到 body 下 --><Teleport to="body"><div v-if="showModal" class="modal">我是一个弹窗</div></Teleport>
</template>

通俗理解:可以把组件渲染到 DOM 的任意位置,比如把弹窗放到页面最外层,避免样式冲突。

6. <Suspense> - 异步组件(加载状态处理)

<template><Suspense><!-- 加载完成的组件 --><template #default><AsyncComponent /></template><!-- 加载中的状态 --><template #fallback><div>加载中...</div></template></Suspense>
</template><script setup>
import { defineAsyncComponent } from 'vue'const AsyncComponent = defineAsyncComponent(() =>import('./AsyncComponent.vue')
)
</script>

通俗理解:优雅地处理异步组件的加载状态,在组件加载完成前显示 loading 效果。

7. <slot> - 插槽(组件的内容占位符)

<!-- Child.vue -->
<template><div class="card"><slot name="header"></slot><slot>默认内容</slot><slot name="footer"></slot></div>
</template><!-- Parent.vue -->
<template><Child><template #header><h2>这是标题</h2></template><p>这是主要内容</p><template #footer><button>确定</button></template></Child>
</template>

通俗理解:允许父组件向子组件传递 HTML 结构,就像给组件开几个“窗口”,让外面可以放东西进来。

http://www.jsqmd.com/news/366366/

相关文章:

  • 2026年全国热解炉哪家专业?覆盖高海拔与规模化等多应用场景 聚焦差异化与落地可行性 - 深度智识库
  • 告别平台割裂:新一代游戏库管理工具的全域聚合方案
  • 创客匠人深度解析:知识产品化的系统架构与AI智能体协同机制
  • 7个步骤搭建本地化翻译服务:保障数据主权的LibreTranslate应用指南
  • 解决Discord音乐播放难题:JMusicBot从部署到精通的实战指南
  • 从精度到售后:2026年值得信赖的真密度仪生产厂家推荐清单 - 品牌推荐大师1
  • 大语言模型训练全流程技术指南:从环境适配到多模态融合
  • 电影推荐系统 | Python Django 协同过滤 Echarts 豆瓣电影数据 大数据 人工智能 毕业设计源码(建议收藏)✅
  • 从CRC冠军到标准制定者:他不信经验,只信G值 - RF_RACER
  • 小程序毕设项目推荐-基于微信小程序的在线社区优购便利店系统基于springboot的优购在线社区便利店系统小程序【附源码+文档,调试定制服务】
  • 小程序计算机毕设之基于springboot的体检预约小程序基于Spring Boot+Vue+UNIAPP的体检预约小程序(完整前后端代码+说明文档+LW,调试定制等)
  • 2026国内最新实木三层地板品牌TOP10推荐:优质企业权威榜单发布,健康环保适配多元家居需求 - 品牌推荐2026
  • 突破内存瓶颈:mimalloc如何解决资源受限系统的内存管理难题
  • OCR效率提升与文本识别优化:OCRmyPDF技术解析与实战指南
  • 小程序毕设选题推荐:基于springboot的体检预约小程序基于微信小程序的医院体检管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 激光粒度仪丹东百特为什么用户众多
  • 2026年全国生活垃圾焚烧炉哪家专业?覆盖多地区多垃圾类型适配需求 技术与服务双解析 - 深度智识库
  • 小程序毕设选题推荐:基于springboot的优购在线社区便利店系统小程序基于微信小程序的在线社区优购便利店系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 阿里云企业级邮箱申请攻略:2026年最新政策与开通步骤详解 - 品牌2025
  • 2026年中国水质处理厂家推荐:四川渔起航生物技术权威深度解析! - 深度智识库
  • 又快又省:SLS 新版日志聚类,从海量日志发现模式的智能引擎
  • 计算机小程序毕设实战-基于springboot的社区线上便利店小程序基于springboot的优购在线社区便利店系统小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2026年山东知名的斜弱视干预企业,哪家价格更合理 - myqiye
  • 电影推荐系统 | Python Django 协同过滤 Echarts 多维度可视化分析 大数据 人工智能 deepseek 毕业设计源码(建议收藏)✅
  • 2026年治疗鱼出血厂家TOP3最新推荐:三大企业一站式诊疗标杆! - 深度智识库
  • Java日期加减运算
  • 2026年江苏靠谱的全自动贴窗机生产企业推荐,费用怎么算? - mypinpai
  • 交稿前一晚!10个降AI率平台深度测评与推荐
  • 2026年纤毛虫治理厂家推荐:四川渔起航聚焦水产动保领域的专业力量 - 深度智识库
  • 猴子音悦音乐策划能力如何?其定制音乐费用贵不贵? - 工业品牌热点