对使用插槽的质疑
来源:12-11 组件设计思想:slot插槽的使用

易萧
2020-12-23
让外部去传递一个标签,也就是说让外部去定制这个组件的结构甚至是样式了,而不是标签本身就提供。
这样岂不是有些违背组件的思想?
往极端的说,如果tag里面什么都不写,全部都让外部去传,那就和一个container没什么区别,纯粹脱离组件编程了。
…
课程中使用插槽是因为:标签需要动态决定是否显示短评的点赞数。
那么何不用hidden隐藏的方式来实现?
只需要三元表达式判断一下num是否是一个非法值就可以了。
<text hidden="{{num=-1}}" value="">
或者说监听num值的改变,一旦num发生变化,至少说明num参数从外部传进来了,那么这时候就可以额外利用一个布尔变量来记录这一变化了,hidden可以这样来决定是否生效。
<text class="num" hidden="{{hiddenLikeCount}}">+{{likeCount}}</text>
properties: {
text: String,
likeCount:{
type: Number,
observer: function () {
this.setData({hiddenLikeCount:false});
}
}
},
data: {
hiddenLikeCount: true
},
···
我理解的slot插槽应当是:
不知道外界到底需要显示什么样结构和样式时提供的一种定制方式,外界可能传任何东西进来,
但是如果有明确的需求,那么就应该直接默认提供,同时也仍然可以在一些可能定制的位置,保留slot的提供。
而 标签的点赞数num很明显是一个非常明确的需求。
写回答
1回答
-
7七月
2020-12-23
组件的设计是分层次的,一些用户用默认,一些用户轻量自定义,还有一些用户高度自定义
高度自定义也并不是说 传个空组件,不是还有一些内置代码 不允许改变吗。
00
相似问题
好像slot插槽位置不对
回答 3
slot插槽位置不正确
回答 1