当前位置:首页 > uni-app

uniapp插槽加判断

2026-03-05 13:38:04uni-app

在UniApp中使用插槽并添加条件判断

UniApp基于Vue.js,因此插槽(slot)和条件判断(v-if/v-show)的使用方式与Vue一致。以下是在组件中使用插槽并添加条件判断的几种方法:

uniapp插槽加判断

基础插槽与条件判断

父组件中使用子组件时,通过插槽传递内容并添加条件:

uniapp插槽加判断

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

<!-- 父组件 -->
<child>
  <template v-slot:header v-if="showHeader">
    <view>这是条件显示的头部内容</view>
  </template>

  <view v-if="showDefault">
    这是默认插槽的条件内容
  </view>

  <template #footer>
    <view>这是始终显示的底部内容</view>
  </template>
</child>

作用域插槽与条件判断

子组件向插槽传递数据,父组件根据数据决定显示:

<!-- 子组件 -->
<template>
  <view>
    <slot :user="user" v-if="userLoaded"></slot>
  </view>
</template>

<script>
export default {
  data() {
    return {
      user: { name: '张三' },
      userLoaded: false
    }
  },
  mounted() {
    setTimeout(() => {
      this.userLoaded = true
    }, 1000)
  }
}
</script>

<!-- 父组件 -->
<child>
  <template v-slot:default="slotProps" v-if="slotProps.user">
    <view>用户: {{slotProps.user.name}}</view>
  </template>
</child>

动态插槽名与条件判断

结合动态插槽名和条件判断实现更灵活的控制:

<!-- 父组件 -->
<child>
  <template #[dynamicSlotName] v-if="shouldShowSlot">
    <view>动态插槽内容</view>
  </template>
</child>

<script>
export default {
  data() {
    return {
      dynamicSlotName: 'header',
      shouldShowSlot: true
    }
  }
}
</script>

注意事项

  • 作用域插槽的条件判断可以放在父组件或子组件中,根据业务需求选择
  • v-if和v-show的区别:v-if是条件渲染,v-show是条件显示(始终渲染)
  • 动态插槽名需要使用方括号语法(v-slot:[name]或#[name])
  • 在UniApp中所有模板语法都需要写在标签中

通过合理组合插槽和条件判断,可以创建高度可复用和灵活的组件结构。

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

相关文章

uniapp使用npm

uniapp使用npm

uniapp中使用npm的方法 uniapp支持通过npm安装和管理第三方依赖包,以下是具体操作步骤: 安装Node.js环境 确保本地已安装Node.js(建议使用LTS版本),安装后会自动包含n…

uniapp面试问啥

uniapp面试问啥

技术基础类问题 UniApp框架特性 跨端实现原理及条件编译的使用场景 如何理解"一次开发,多端运行"的优缺点 rpx与vw/vh单位的适配差异 Vue相关 生命周期在UniA…

uniapp 美颜

uniapp 美颜

uniapp 美颜实现方法 在uniapp中实现美颜功能可以通过多种方式完成,以下是一些常见的方法: 使用原生插件 uniapp支持调用原生插件实现美颜效果,适用于对性能要求较高的场景。需要开发原生…

uniapp adb

uniapp adb

在UniApp中使用ADB的方法 ADB(Android Debug Bridge)是Android开发中常用的调试工具,可用于UniApp项目的真机调试、日志查看等操作。以下是具体使用方法: 连接…

uniapp 用法

uniapp 用法

uniapp 基本概念 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持编译到 iOS、Android、H5 及小程序等多端。其核心特点是“一次开发,多端发布”,通过条件编译实现平台差异…

uniapp招聘信息

uniapp招聘信息

uniapp招聘现状 目前市场上对uniapp开发者的需求主要集中在移动端跨平台开发领域,许多企业希望招聘能够同时开发iOS和Android应用的全栈人才。招聘岗位通常要求掌握Vue.js框架、熟悉小…