uni-app插槽

什么是插槽?

在 UniApp 中,插槽(Slot)是一种允许父组件向子组件特定位置插入HTML内容的方式。这种方式使得组件更加灵活,可以被复用在多种场景下,同时让父组件能够控制子组件的部分呈现内容。

基本概念

  1. 默认插槽 :当没有特别指定插槽名称时,默认插槽就是指没有名字的插槽,可以在子组件中直接使用 <slot></slot> 标签来定义一个默认插槽的位置。

  2. 命名插槽 :如果需要在子组件中定义多个插槽,可以通过 <slot name="slotName"></slot> 来定义具有特定名称的插槽。父组件则需要使用 <template v-slot:slotName>...</template> 或者更简洁的 <template #slotName>...</template> 来填充这些具名插槽。

  3. 作用域插槽 :有时候父组件需要访问子组件的数据或属性,这时候就需要使用作用域插槽。子组件需要在 <slot> 标签中声明需要传递给父组件的数据,如 <slot name="slotName" :items="items"></slot>。父组件在使用这个插槽时,可以通过 v-slot:slotName="{ items }" 来接收这些数据,并根据这些数据进行渲染。


默认插槽

html 复制代码
<template>
	<view class="all">
		<view class="header">
			头部
		</view>
		<view class="main">
			<slot></slot>
		</view>
		<view class="footer">
			底部
		</view>
	</view>
</template>

<script setup>

</script>

<style lang="scss" scoped>
	.header {
		position: sticky;
		top: 0;
		background-color: green;
		height: 100px;
		z-index: 1; // 确保头部始终在最上层
	}

	.main {
		height: 100px;
	}


	.footer {
		background-color: rosybrown;
		height: 120px;
	}
</style>
相关推荐
晴天165 小时前
多个 VS Code 项目会导致 Chrome 和 Electron 应用一起卡住?-Day30
前端·chrome·electron
2401_8685347811 小时前
指令集-最常用 Linux 命令速查手册(整合版)
linux·网络协议
ltl11 小时前
小文件问题:文件数量如何放大元数据与 I/O 成本
linux
BigTopOne11 小时前
【WebRtc】DTLS-SRTP 加密完整流程详解
前端
陈随易11 小时前
pm2 替代品,nodejs&bun 线上部署必备工具
前端·后端·程序员
单线程_0111 小时前
从案例分析 Vue3 Tokenizer 源码一
前端·javascript·vue.js
BigTopOne11 小时前
【WebRtc】-ICE Candidate 与 STUN/TURN 原理详解
前端
ltl11 小时前
网络延迟优化:Nagle、TCP_NODELAY 与中断亲和
linux
l12586512 小时前
# LangGraph Memory机制深度解析:短期记忆与长期记忆的工程实践
前端·人工智能·python·langchain·bootstrap