小程序中slot插槽使用默认值方案

前提:
在很多场景下我们希望自定义组件有较好的扩展性,在不传入slot的情况下默认展示默认的结构与样式,但小程序中的slot没有像vue中的slot一样提供默认值,这时候我们可以通过伪类选择器:empty相邻选择器+控制元素的display来实现

  • 使用自定义组件
<view>
  <slot-item>
    <button>我是一个按钮</button>
  </slot-item>
  <slot-item></slot-item>
  <slot-item>
    <text style="color: red;">我是一个文本</text>
  </slot-item>
</view>
  • 实现自定义组件
    • wxml
<view class="container">
  <view>我是header</view>
  <view class="content">
    <slot></slot>
  </view>
  <!-- 插槽默认值 -->
  <view class="default">我是slot默认值</view>
  <view>我是footer</view>
</view>
  • wxss
.default {
  width: 200rpx;
  height: 200rpx;
  background-color: #f99;
  text-align: center;
  line-height: 200rpx;
  margin: 0 auto;
  /* 默认值默认不显示 */
  display: none;
}

/* 当插槽内为空时 通过相邻选择器将默认值显示 */
.content:empty+.default {
  display: block;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【姓名】安艳慧 【书目】《给年轻班主任的建议》之《学生易于接受吹面不寒的教育》陈晓华 【日期】2022.3.10 ...
    安子945阅读 122评论 0 0
  • 【姓名】安艳慧 【书目】《给年轻班主任的建议》之《学生易于接受吹面不寒的教育》陈晓华 【日期】2022.3.10 ...
    安子945阅读 135评论 0 0
  • 中原焦点团队高级6期肖巧风,坚持分享第701天 案例学习 答疑解感: 1.有没有什么不好的念头?最难受难受到什么程...
    凤舞九天阅读 126评论 0 0
  • 我是来自1方阵1院的肖宏,来到找到北,首先要感谢我生命中的贵人叶美清姐姐,是她的引领,让我进到充满大爱,喜悦,独特...
    王大生阅读 145评论 0 2
  • 相信相信的力量 热爱学习、智慧满满的爸爸妈妈们,大家晚上好: 很开心能与大家相遇在天生骄傲,我的昵称叫红五。 我不...
    杭州一红五阅读 463评论 0 0