事件的概念:事件是视图层到逻辑层的通讯方式,可以将用户的行为反馈到逻辑层进行处理,可以绑定在组件上,当事件被触发,就会执行对应的处理函数,事件对象(event)可以携带额外的信息,如id,dataset,touches
事件的使用方法
bindtap和catchtap
在视图层中写上bindtap=‘函数名称’,注意不需要加()
<view bindtap='toDetail' data-newsid="{{item.userid}}">
<template is="newsTemplate" data="{{...item}}"></template>
</view>
在对应页面的js写上事件函数
toDetail:function(event){
wx.navigateTo({
url: 'news-detail/news-detail?userid='+event.currentTarget.dataset.newsid
})
事件对象
如无特殊说明,当组件触发事件时,逻辑层绑定该事件的处理函数会收到一个事件对象。
就是function里面的event,我把这个event打印出来,再分析一下
- type 事件类型,图中为tab
- timeStamp 事件生成时的时间戳 图中为9825439
- target 触发事件的组件的一些属性集合 有dataset(事件源组件上由data-开头的自定义属性组成的集合),id(事件源组件的id)
- currentTarget 当前组件的一些属性值集合,有dataset(事件源组件上由data-开头的自定义属性组成的集合),id(事件源组件的id)
在组件中可以自定义属性, 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写,不能有大写,不能有大写,重要事情说三遍。。。。
传值用 data-newsid=”{{item.userid}}”
获取值用 event.currentTarget.dataset.newsid