对获取文章数据逻辑有点疑问?
来源:5-25 List 组件 - 根据 tab 的切换,获取真实数据

三清先森
2021-08-31
第一个问题:当我们打开app或者小程序的时候,应该是默认tabs第一项为主页,同时文章列表应该也与tabs第一个相对应,打开小程序的的时候应该自动获取数据并呈现。为什么要给my-tabs注册点击事件呢?
第二个问题:当切换tabs。通过onTabClick事件获取数据,这个事件是单独给每一个item注册,还是说有类似于事件委托的方式,给父级注册呢。
2回答
-
Sunday
2021-08-31
你好:
首先第一个问题:
你说的给 mytabs 注册点击事件指的是
<my-tabs
....
@tabClick="tabClick"
></my-tabs>
这个代码吧。
这里需要明确一下,此处并不是给 my-tabs 添加点击事件,而是监听了 mytabs 组件中的 tabClick 通知。当 mytabs 组件中的 view 被点击时,会触发一个方法 tabClick,具体代码如下:
<view
class="tab-item"
:id="'_tab_' + index"
:class="{ 'tab-item-active': activeIndex === index }"
@click="tabClick(index)"
...
>...</view>
在该 tabClick 被触发时,会发送一个事件,叫做 tabClick:
/**
* tab 的点击事件处理
*/
tabClick(index) {
....
// 发送通知
this.$emit('tabClick', index);
},
这个 this.$emit('tabClick', index); 就是所监听的通知。
问题二:
就像问题一所说,问题二也就很明确了, onTabClick 是给每一个 item 注册的,并非事件分发
012021-08-31 -
qq_慕姐1024111
2021-08-31
我谈谈自己的见解吧,老师觉得哪不对麻烦指正一下。
问题一:
对于my-tabs的点击事件有2个,一个是在子组件my-tabs定义的onTabClick方法,另一个是子组件通过$emit返回给父组件的tabClick事件,方法也是onTabClick(也可能是一个方法定义在两个地方了,对$emit理解不是很深)
子组件的点击事件主要是修改激活的(选中的)item的样式以及下滑块的滑动位置,父组件的点击事件主要是传递选中的tab-item的索引值,并保存到hot.vue中进行调用。随后获取数据。
问题二:
没太理解你的问题,自己感觉应该是给每一个item都绑定了点击事件吧,父子组件的方法都能使用。
022021-08-31
相似问题