开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情
您能在这里看到啥
- 因
- 果
- 插槽是啥
- 单个插槽
- 多个插槽
因
在不断的学习和实践中,终究还是避免不了
动画
诱惑.然后我们的UI小姐姐
激动说.看我设计了一个有趣的动画.就问你怕不怕?
. 哈哈哈哈.我扶住我激动的手,喝着杯里的水.淡定的说了一声.请给我gif图.哈哈哈.跑题了跑题了.后续我也会把这个动画的实现
分享给大家,下面我们先看一下界面.
从上面的UI
样式中,大致我分为两个层级
-
背景动画组件
-
动画状态组件
至于你说
橙色
状态,那也只是这两个大的模块
里的状态值而已.想要完成这样的组合,有两种方法-
把
动画状态组件
写到背景动画组件
里面,然后组件里面根据用户传的状态值.使用if else
进行界面提前的写入. -
让
背景动画组件
的使用者,可以自己定义动画状态组件
第一种
不是不可以.只是扩展性不够好.不够高级
.为了实现第二种需求.插槽
组件呼之欲出.收,我们一起学习一下插槽
. -
果
-
插槽是啥
先看一下简单的使用事例
-
在组件里使用
插槽(slot)
<view bindtap="tap">{{msg}}</view> <slot></slot>
-
在
父组件
添加文本<test class="ts" title="我是子组件" bindtest="taptest"> <text>插槽</text> </test>
-
界面表现
从上面UI的表现层,我们可以直观的知道.
插槽(slot)
更像一个UI
占位图.可以让使用者
把自己的UI
插入自定义组件
特定的位置.当然.如果你使用的组件,并未使用
插槽
功能.就算,你还按照在父组件添加文本
方式使用的话,你会惊奇的发现
啥也没有.特别注意:
插槽
必须在自定义组件
中使用. -
-
单个插槽
在小程序中,默认情况下.每个自定组件中只允许使用一个
插槽(slot)
承担起UI占位
功能.这种在个数上的限制就叫过单个插槽
. -
多个插槽
当然,官方也是考虑到了
开发人员
爱折腾的特点,小孩子
才要做选择.我全要.哈哈哈,基于这样合理
的需求.多个插槽
应运而生.下面我们看一下怎么使用多个插槽
.- 定义组件支持多个
插槽
Component({ options: { //设置为true即可支持多个插槽 multipleSlots:true } })
- 使用多个
插槽
- 直接使用多个
插槽
子组件 <slot></slot> <view bindtap="tap">{{msg}}</view> <slot></slot> <slot></slot> <slot></slot> 父组件 <test class="ts" title="我是子组件" bindtest="taptest"> <view>插槽</view> <view>插槽</view> <view>插槽</view> <view>插槽</view> </test>
-
预期结果
-
执行结果
从上面的我们可以知道,虽然使用了多个
插槽
.但结果是把所有的UI
赋值到了第一个插槽
里.和单个插槽
效果是一样的.
-
- 给
插槽
设置别名-
修改
自定义组件
-
修改
父组件
-
执行结果
如上所见.这样就完成了
多个插槽
的使用.
-
- 直接使用多个
- 定义组件支持多个
系列文章
- # 你真的会使用 “WXSS” 吗?
- # 小程序之独立分包
- # 打破分包不能引用的壁垒 之 分包异步化
- # 小程序 之 “逃不掉的生命周期”(一)
- # 小程序之自定义组件(一)
- # 小程序之自定义组件(二)