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

vue · 插槽 | $slots:访问所有命名插槽内容 | 插槽的使用:子组件和父组件如何书写?

子组件,插槽的内容是由父组件传递进来的

子组件定义插槽 —— 组件确定要 插入的位置 ——  <slot name="xxx" /> 定位

父组件定义插槽里的内容 —— 组件确定 内容 —— <template #prefix>  内容


$slots —— 访问插槽内容的对象

子组件中访问 $slots,就能知道父组件是否有传入插槽

  • $slots 是 Vue 实例中的一个属性,用于访问所有命名插槽内容

  • 它是一个对象,键是插槽的名字值是对应的 VNode 数组(Vue 虚拟 DOM 节点)。

$slots 类似的还有:
对象作用说明
$slots原始插槽内容,是未处理的 VNode。
$scopedSlots (Vue 2)用于访问作用域插槽(函数)。 Vue 3 中已废弃
slots (Vue 3 中 Composition API)用于组合式 API 中访问插槽内容。

 vue3中

setup(props, { slots }) {if (slots.header) {const headerVNode = slots.header()}
}

注意:

  • $slots 中的 内容 VNode 对象数组,不是 HTML 字符串。

  • 不要直接修改 $slots,它是 只读 的。

  • 若插槽为,对应的键 会是 undefined


如何判断是子组件还是父组件?

子组件
  • 定义了 <slot name="xxx" /> 插槽
  • 插槽用于让父组件传入内容,所以 子组件接收内容,属于被插槽注入者 => 子组件
  • 它也使用了 definePropsdefineEmits,表明它是一个组件模块,接收 props 和发出事件
父组件
  • 父组件使用 <template #prefix> 提供了 名为 prefix 的插槽内容。

  • 子组件件内部,插槽 <slot name="prefix" /> 的位置会渲染父组件提供的 内容 <Icon icon="search" />

  • <template #xxx>...</template>,定义插槽中的具体内容

<!-- 子组件 -->
<slot name="prefix" />
<!-- 父组件中 -->
<VkInput v-model="text"><template #prefix><Icon icon="search" /></template><template #suffix><span style="color: gray">后缀</span></template>
</VkInput>

例子:

子组件<slot name="xxx" />,只是占位符,内容由父组件传入

父组件<template #xxx></template>,定义插槽中的具体内容

 

问题答案
插槽的内容是由子组件传过来的吗?不是,插槽的内容是由父组件传入的。组件只是定义了插槽的位置组件传入内容
http://www.lqws.cn/news/208891.html

相关文章:

  • mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
  • 【数据结构】6. 时间与空间复杂度
  • STM32学习笔记:外部中断(EXTI)原理与应用详解
  • 如何使用Jmeter进行压力测试?
  • NLP学习路线图(三十一): 迁移学习在NLP中的应用
  • 知识改变命运?如何有规划的学好计算机专业?
  • 元器件基础学习笔记——结型场效应晶体管 (JFET)
  • MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
  • 力扣-17.电话号码的字母组合
  • DL00335-基于深度学习YOLOv11的煤矸石检测含完整数据集
  • Qt Test功能及架构
  • 分贝计的校准方法和频率介绍
  • Protobuf 中的类型查找规则
  • 每日算法刷题Day25 6.7:leetcode二分答案3道题,用时1h40min(遇到两道动态规划和贪心时间较长)
  • 2025年燃气从业人员考试题库及答案
  • C++修炼:C++11(二)
  • Python 数据类型转换、编码处理与文件操作实战指南
  • Spring AI 核心工作流
  • 从零开始开发纯血鸿蒙应用之网络检测
  • Python异步编程-协程
  • 【R语言编程——数据调用】
  • Modbus RTU/TCP 协议详解与Spring Boot集成指南
  • Spring Boot
  • 13-Oracle 23ai Vector Search VECTOR数据类型和实操
  • 34、协程
  • 机器学习的数学基础:神经网络
  • Redis 高频知识点及解析
  • Vue 项目实战:三种方式实现列表→详情页表单数据保留与恢复
  • 蓝牙音乐(A2DP)音频延迟的一些感想跟分析,让你对A2DP体验更佳深入
  • c++算法学习6——记忆化搜索