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

vue3 组合式API:插槽

一、内容与出口

1、<slot> 元素是一个插槽出口 (slot outlet),标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。插槽内容可以是任意合法的模板内容,不局限于文本

<FancyButton>
  Click me! <!-- 插槽内容 -->
</FancyButton>



// <FancyButton> 的
<button class="fancy-btn">
  <slot></slot> <!-- 插槽出口 -->
</button>



// 最终渲染出的 DOM 是这样:
<button class="fancy-btn">Click me!</button>

二、渲染作用域

1、插槽内容可以访问到父组件的数据作用域,因为插槽内容本身就是在父组件模板中定义的

//两个 {{ message }} 插值表达式渲染的内容都是一样的
<span>{{ message }}</span>
<FancyButton>{{ message }}</FancyButton>

2、插槽内容无法访问子组件的数据。Vue 模板中的表达式只能访问其定义时所处的作用域,换言之:父组件模板中的表达式只能访问父组件的作用域;子组件模板中的表达式只能访问子组件的作用域。

三、默认内容:在外部没有提供内容的情况下,可以为插槽指定默认内容。

//例如:<SubmitButton> 组件

<button type="submit">
  <slot></slot>
</button>

//如果想在父组件没有提供插槽内容时,在<button>内渲染 “Submit” ,只需将 “Submit”放在<solt>
//标签之间,来作为默认内容


<button type="submit">
  <slot>
    Submit <!-- 默认内容 -->
  </slot>
</button>


上述案例就可以在父组件中没有提供内容时 <SubmitButton /> 被渲染成 
<button type="submit">Submit</button>


//但是如果提供了内容Save,那么显示提供的内容就会取代默认内容
<SubmitButton>Save</SubmitButton>
//渲染成:
<button type="submit">Submit</button>

四、具名插槽

五、条件插槽

六、动态插槽名

七、作用域插槽名

相关文章:

  • 【机器学习chp11】聚类(K均值+高斯混合模型+层次聚类+基于密度的聚类DBSCAN+基于图的聚类+聚类的性能评价指标)
  • C语言程序设计第一章习题
  • Linux - 线程控制
  • CES Asia 2025:AR/VR/XR论坛峰会备受瞩目
  • Python的Pandas和matplotlib库:让数据可视化贼简单
  • Scala:解构声明(用例子通俗易懂)
  • Leetcode2848:与车相交的点
  • 前端图片加载错误原因分析
  • 异常(5)
  • 大模型AI平台DeepSeek 眼中的SQL2API平台:QuickAPI、dbapi 和 Magic API 介绍与对比
  • UE4 组件 (对话组件)
  • 使用 dynamic-datasource-spring-boot-starter 实现多数据源动态切换
  • day21-API(算法,lambda,练习)
  • 工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)
  • mapset
  • spring-ai
  • 基于自监督三维语义表示学习的视觉语言导航
  • linux系统下openwebui重启并使用本地模型(vllm或其他)
  • 江科大51单片机笔记【10】蜂鸣器播放提示器音乐(下)
  • 【无标题】四色拓扑模型与宇宙历史重构的猜想框架
  • 网站源码建站/拉新人拿奖励的app
  • 什么网站可以做旅行行程/安卓优化大师最新版
  • 哪个视频网站做视频最赚钱的/网站自助搭建
  • 企业门户网站模板html/怎么开个人网站
  • 网站优化工具/公众号排名优化软件
  • 做网站的文章/优化公司结构