把属性、方法定义在自定义组件上与定义在组件内部

来源:13-5 谈组件的独立性

幕布斯4195248

2021-04-07

例如: post.wxml中

<block wx:for="{{postData}}" wx:for-item="pos" wx:for-index="idx" wx:key="postId">
    <c-post res="{{pos}}" index="{{idx}}" data-post-id="{{pos.postId}}" bind:tap="onGoToDetail" />
</block>

和在 components > post > index.wxml

<view class="post-container" data-post-id="{{pos.postId}}" bind:tap="onGoToDetail" >
...
</view>

表面上两种方法都能实现效果,第二种方法事件绑定更灵活,除了这个还会引起其它什么影响吗?

写回答

3回答

7七月

2021-04-10

如果是对全部组件绑定,应该绑定外部,绑定内部最好用事件传递出去。

0
1
幕布斯4195248
非常感谢!
2021-04-12
共1条回复

爱吃apple的阿狸

2021-11-21

直接定义在post.wxml里的组件上,是作用于整个组件,这个组件是由头像,日期,标题,图片,还有阅读数这些组合成一个整体的组件;

如果你只想点击组件内部的一部分(比如只想点击标题和图片才跳转进详情,点击头像等其他组件内的元素跳转到另一个页面),这种就需要在组件内部去定义点击事件了,然后在抛到外部来处理。

这种组件内局部的事件,是无法在外部组件元素上定义出来的。

0
0

7七月

2021-04-08

一般个人习惯用block来当做括号的作用。

0
1
幕布斯4195248
谢谢老师,我没有表达清楚,就是想了解下,把“onGoToDetail”事件直接绑定在自定义组件上 和绑定到 内部,实现的效果一样,但会有其它影响吗
2021-04-09
共1条回复

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23866 学习 · 6899 问题

查看课程