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>
相关推荐
Hyyy23 分钟前
什么是bun?和pnpm有什么区别
前端·面试·bun
zylyehuo9 小时前
Linux 彻底且安全地删除文件
linux
IT_陈寒14 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
kyriewen14 小时前
我用 50 行代码重写了 React Router 核心,终于搞懂了前端路由原理
前端·javascript·react.js
WebInfra15 小时前
Rspack 2.1 发布:React Compiler 提速 10 倍!
前端
李明卫杭州15 小时前
CSS 媒体查询详解:一文掌握响应式设计的核心技术
前端
lichenyang45315 小时前
从 H5 按钮到 OpenHarmony 能力调用:我如何理解 ASCF 的运行链路
前端
下家16 小时前
我放弃了 Vue/React,选择自研框架
前端·前端框架
Asize16 小时前
HTML5 Canvas 基础:从按帧动画到 ECharts 数据可视化
前端·javascript·canvas
默_笙16 小时前
🎄 后端给我一堆扁平数据,我 10 行代码把它变成了树
前端·javascript