当前位置:首页 > uni-app

uniapp 插槽使用

2026-01-16 16:23:44uni-app

uniapp 插槽的基本使用

插槽(Slot)是组件化开发中的重要特性,允许在组件内部预留位置,由父组件动态传入内容。uniapp 支持 Vue 的插槽语法,包括默认插槽、具名插槽和作用域插槽。

默认插槽示例
子组件中通过 <slot> 标签定义插槽位置:

<!-- 子组件 child.vue -->
<template>
  <view class="container">
    <slot></slot>
  </view>
</template>

父组件使用时,在子组件标签内插入内容:

uniapp 插槽使用

<!-- 父组件 -->
<child>
  <text>这是插入到默认插槽的内容</text>
</child>

具名插槽的使用

当需要多个插槽时,可通过具名插槽区分。子组件用 name 属性命名插槽:

<!-- 子组件 child.vue -->
<template>
  <view>
    <slot name="header"></slot>
    <slot name="footer"></slot>
  </view>
</template>

父组件通过 v-slot# 语法指定插槽名:

uniapp 插槽使用

<!-- 父组件 -->
<child>
  <template v-slot:header>
    <text>头部内容</text>
  </template>
  <template #footer>
    <text>底部内容</text>
  </template>
</child>

作用域插槽的使用

作用域插槽允许子组件向插槽传递数据。子组件在 <slot> 上绑定属性:

<!-- 子组件 child.vue -->
<template>
  <view>
    <slot name="item" v-for="item in list" :item="item"></slot>
  </view>
</template>
<script>
export default {
  data() {
    return {
      list: ['A', 'B', 'C']
    }
  }
}
</script>

父组件通过 v-slot 接收数据:

<!-- 父组件 -->
<child>
  <template v-slot:item="slotProps">
    <text>{{ slotProps.item }}</text>
  </template>
</child>

插槽的默认内容

子组件可在 <slot> 内设置默认内容,当父组件未传递插槽内容时显示:

<!-- 子组件 child.vue -->
<template>
  <view>
    <slot>默认显示文本</slot>
  </view>
</template>

注意事项

  • 兼容性:uniapp 的插槽语法与 Vue 一致,但在小程序端部分高级用法(如动态插槽名)可能受限。
  • 样式作用域:插槽内容样式受父组件样式影响,若需隔离样式可使用 style scoped
  • 性能优化:避免在插槽中使用复杂逻辑,尤其是循环嵌套插槽时可能影响渲染性能。

通过合理使用插槽,可以大幅提升组件的灵活性和复用性。

标签: 插槽uniapp
分享给朋友:

相关文章

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp实现懒加载

uniapp实现懒加载

uniapp实现懒加载的方法 在uniapp中实现懒加载可以通过多种方式,以下是几种常见的方法: 使用uni.lazyLoad组件 uniapp提供了内置的懒加载组件,适用于图片等资源的懒加载。在页…

uniapp grid

uniapp grid

uniapp grid 布局实现方法 在 uniapp 中实现 grid 布局可以通过多种方式完成,包括使用内置组件、CSS Grid 或第三方插件。以下是几种常见的实现方法: 使用 uni-gri…

uniapp与vr

uniapp与vr

Uniapp与VR的结合方式 Uniapp作为跨平台开发框架,本身不直接支持VR开发,但可以通过以下方式实现与VR技术的结合: 使用WebXR API Uniapp可以调用WebXR API在H5端…

uniapp下拉换图

uniapp下拉换图

uniapp下拉换图实现方法 监听页面滚动事件 在页面中监听onPageScroll事件,获取滚动位置。当滚动到特定位置时触发换图逻辑。 onPageScroll(e) { if(e.sc…