当前位置:首页 > uni-app

uniapp插槽的使用

2026-02-06 07:46:14uni-app

uniapp插槽的基本概念

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

默认插槽使用

在子组件中通过<slot>标签定义插槽位置,父组件传入的内容会替换该标签。

子组件示例代码:

<view class="child-component">
  <slot></slot>
</view>

父组件调用示例:

<child-component>
  <text>这是插入到默认插槽的内容</text>
</child-component>

具名插槽使用

当需要多个插槽时,可使用具名插槽。子组件通过name属性命名插槽,父组件通过v-slot指令或slot属性指定内容。

子组件示例:

<view>
  <slot name="header"></slot>
  <view>主体内容</view>
  <slot name="footer"></slot>
</view>

父组件调用方式(Vue 2.6+推荐写法):

<child-component>
  <template v-slot:header>
    <text>头部内容</text>
  </template>
  <template v-slot:footer>
    <text>底部内容</text>
  </template>
</child-component>

兼容写法(旧版本):

<child-component>
  <view slot="header">头部内容</view>
  <view slot="footer">底部内容</view>
</child-component>

作用域插槽使用

当子组件需要向插槽传递数据时,可使用作用域插槽。子组件通过v-bind绑定数据,父组件通过v-slot接收。

子组件示例:

<view>
  <slot name="item" v-bind:item="itemData"></slot>
</view>

父组件调用示例:

<child-component>
  <template v-slot:item="slotProps">
    <text>{{ slotProps.item.name }}</text>
  </template>
</child-component>

插槽默认内容

可以为插槽设置默认内容,当父组件未提供插槽内容时显示。

示例代码:

<slot>默认显示内容</slot>

动态插槽名

支持使用动态指令参数指定插槽名称。

示例代码:

<template v-slot:[dynamicSlotName]>
  ...
</template>

注意事项

  1. 在非H5端,具名插槽的旧写法(slot="name")需要编译到HBuilderX 2.4.1以上版本
  2. 作用域插槽在微信小程序中需要基础库2.5.0+支持
  3. 动态插槽名在部分平台可能需要额外配置
  4. 插槽样式建议写在父组件中,避免样式隔离问题

uniapp插槽的使用

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

相关文章

uniapp和vue有什么区别

uniapp和vue有什么区别

uniapp和vue的区别 1. 定位与用途 Vue:一个渐进式JavaScript框架,专注于构建用户界面,适用于开发单页应用(SPA)或复杂前端项目。 UniApp:基于Vue.js的跨…

uniapp极光推送

uniapp极光推送

uniapp极光推送集成步骤 准备工作 注册极光推送开发者账号,创建应用获取AppKey。确保uniapp项目已配置好原生插件支持。 安装插件 在uniapp项目manifest.json文件中,…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开…

uniapp旋转横屏

uniapp旋转横屏

实现横屏模式的方法 在UniApp中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中,找到…

uniapp前端页面

uniapp前端页面

Uniapp 前端页面开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端部署(H5、小程序、App等)。以下是开发 Uniapp 前端页面的关键方法和注意事项。…

uniapp使用axios无法请求

uniapp使用axios无法请求

uniapp中使用axios请求问题解决方案 在uniapp中使用axios可能会遇到跨域、请求失败或兼容性问题。以下是常见原因及解决方法: 检查axios安装与引入 确保已正确安装axios:…