当前位置: 首页 > news >正文

聊城做网站费用价位代刷网站推广链接免费

聊城做网站费用价位,代刷网站推广链接免费,湖南宏泰美佳建设工程有限公司网站,北京壹零零壹网站建设前言 哈喽大家好,我是 SuperYing,本文是小程序从入门到入坑系列的第 3 篇,将比较详尽的讲解 小程序事件系统 的相关知识点,欢迎小伙伴阅读。 读完本文您将收获: 了解小程序事件及基础使用。了解小程序事件分类及多种的…

前言

哈喽大家好,我是 SuperYing,本文是小程序从入门到入坑系列的第 3 篇,将比较详尽的讲解 小程序事件系统 的相关知识点,欢迎小伙伴阅读。

读完本文您将收获:

  1. 了解小程序事件及基础使用。
  2. 了解小程序事件分类及多种的绑定方式。
  3. 了解如何使用 wxs 绑定事件响应函数。

什么是事件

借用官网的描述:

  • 事件是视图层到逻辑层的通讯方式。
  • 事件可以将用户的行为反馈到逻辑层进行处理。
  • 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
  • 事件对象可以携带额外信息,如 id, dataset, touches

事件 可以完成从 视图层逻辑层 的通信,通过特定的参数处理方式,实现对于用户行为的逻辑处理。

事件绑定

事件分类

小程序事件分为:

  • 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  • 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

WXML 的冒泡事件列表:

类型触发条件最低版本
touchstart手指触摸动作开始
touchmove手指触摸后移动
touchcancel手指触摸动作被打断,如来电提醒,弹窗
touchend手指触摸动作结束
tap手指触摸后马上离开
longpress手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发1.5.0
longtap手指触摸后,超过350ms再离开(推荐使用longpress事件代替)
transitionend会在 WXSS transition 或 wx.createAnimation 动画结束后触发
animationstart会在一个 WXSS animation 动画开始时触发
animationiteration会在一个 WXSS animation 一次迭代结束时触发
animationend会在一个 WXSS animation 动画完成时触发
touchforcechange在支持 3D Touch 的 iPhone 设备,重按时会触发1.9.90

注:除上表之外的其他组件自定义事件如无特殊声明都是非冒泡事件,如 form 的submit事件,input 的input事件,scroll-view 的scroll事件,(详见各个组件)

普通事件绑定

事件绑定的写法类似于组件的属性,在 bind:(冒号 : 可省略) 后面加上事件名称:

bind:[事件名称]="[事件绑定函数名称]"

事件绑定函数名称 是一个字符串,指向在 .ts/.js 文件的 Page 函数中定义的处理函数名。

eg:

<view bind:tap="handleTap">点击区域</view>

事件绑定函数名称也可以是数据绑定,但是绑定的变量必须是一个字符串,指向事件处理函数名。若该变量为空字符串,则绑定会失效,可以该特性来暂时禁用某些事件。

<view bind:tap="{{ tapHandlerName }}">点击区域</view>
Page({data: {tapHandlerName: 'handleTap'},handleTap() {// tap 事件处理逻辑...}
})

阻止事件冒泡绑定

除了使用 bind 绑定事件,还可以使用 catch 绑定。两者区别在于 catch 会事件向上冒泡。

「事件分类」part 我们知道,小程序事件有一种冒泡事件,此类事件触发后会向父节点传递。

eg:

<view id="outer" bind:tap="handleTap1">outer view<view id="middle" catch:tap="handleTap2">middle view<view id="inner" bind:tap="handleTap3">inner view</view></view>
</view>

上例中,点击 inner view 会先后调用 handleTap3handleTap2,这是因为 tap 事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递.点击 middle view 会触发 handleTap2,点击 outer view 会触发 handleTap1

互斥事件绑定

除了 bindcatch 外,还可以使用 mut-bind 来绑定互斥事件,所有 mut-bind 绑定都是互斥的,只会触发其中一个绑定函数,但是不会影响bindcatch 绑定的事件。

也就是说,触发 mut-bind 绑定的事件后,如果事件冒泡到父级节点上,在父级节点上使用 mut-bind 绑定的事件不会被触发,而使用 bindcatch 绑定的事件可以正常触发。

eg:

<view id="outer" mut-bind:tap="handleTap1">outer view<view id="middle" bindtap="handleTap2">middle view<view id="inner" mut-bind:tap="handleTap3">inner view</view></view>
</view>

上例中,点击 inner view 会先后调用 handleTap3handleTap2,因为 handleTap3handleTap1 绑定的事件互斥,所以冒泡到 outer 时不会触发 handleTap1。点击 middle view 会调用 handleTap2handleTap1

事件捕获阶段绑定

小程序的触摸类事件支持捕获阶段。捕获阶段发生在冒泡事件之前,事件到达节点的顺序与冒泡阶段恰好相反。

对于 DOM 事件比较了解的小伙伴应该比较清楚,支持捕获阶段的事件触发流程如下: image.png 可以通过 capture-bindcapture-catch 来在捕获阶段绑定事件,其中 capture-catch中断捕获阶段并取消冒泡阶段

<view id="outer" bind:touchstart="handleTap1" capture-bind:touchstart="handleTap2">outer view<view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">inner view</view>
</view>

上例中,点击 inner view 会先后调用 handleTap2handleTap4handleTap3handleTap1

若将上例中的 capture-bind:touchstart="handleTap2" 改为 capture-catch:touchstart="handleTap2",将会仅触发 handleTap2

eg:

<view id="outer" bind:touchstart="handleTap1" capture-catch:touchstart="handleTap2">outer view<view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">inner view</view>
</view>

wxs 绑定响应函数

在上一篇 框架语法 中我们有提到小程序的脚本语言 wxs。我们可以在 wxs 中创建事件处理参数,绑定到指定事件上(注意:仅能响应内置组件的事件,不支持自定义事件)。

使用 wxs 绑定响应函数,主要是用来优化频繁交互的场景,将事件响应放到视图层,避免视图层逻辑层频繁通信,导致交互过程的延迟。

wxs 的事件处理函数包括两个参数:

  • event: 事件对象,在 小程序事件对象 的基础上,多了一个 instance 属性,用来表示触发事件结构的 ComponentDescriptor 实例。
  • ownerInstance: 触发事件的组件所在的组件的 ComponentDescriptor 实例,如果触发事件的组件在页面内,ownerInstance 表示的是页面实例。

ComponentDescriptor 是小程序内部封装的类,包括 selectComponent, selectAllComponents, setStyle, addClass/removeClass/hasClass, callMethod 等实例方法,可用于获取页面组件实例,设置组件样式,与逻辑层交互等功能。

eg:

// index.wxml
<wxs module="tools" src="./tools.wxs"></wxs>
<view id="tapTest" data-hi="微信小程序" bindtap="{{tools.tapName}}"> Click me! </view>
// tools.wxs
function tapName(event, ownerInstance) {console.log('tap 事件', JSON.stringify(event))
}
module.exports = {tapName: tapName
}

结语

好啦,今天我们整体性的讲述了 小程序事件系统 相关的内容。相信读到这里的小伙伴已经对 小程序事件系统 有了比较清晰的了解,爱动手的小伙伴们快去动起来吧😁。

若有疑问,欢迎评论区。感谢阅读!愿你我共同进步,谢谢!!!


文章转载自:
http://gecko.c7497.cn
http://sweetener.c7497.cn
http://caddice.c7497.cn
http://worcestershire.c7497.cn
http://radioisotope.c7497.cn
http://bacony.c7497.cn
http://globin.c7497.cn
http://cyanidation.c7497.cn
http://playday.c7497.cn
http://clocker.c7497.cn
http://unipartite.c7497.cn
http://instrument.c7497.cn
http://discourse.c7497.cn
http://spaz.c7497.cn
http://zach.c7497.cn
http://tentacula.c7497.cn
http://conrad.c7497.cn
http://hexahemeron.c7497.cn
http://distraint.c7497.cn
http://yokosuka.c7497.cn
http://plesiosaur.c7497.cn
http://vermouth.c7497.cn
http://trifolium.c7497.cn
http://peckerhead.c7497.cn
http://holdup.c7497.cn
http://mercantilist.c7497.cn
http://dingle.c7497.cn
http://houseplace.c7497.cn
http://rhombic.c7497.cn
http://hominization.c7497.cn
http://oxidase.c7497.cn
http://sourdine.c7497.cn
http://antaeus.c7497.cn
http://inventer.c7497.cn
http://permute.c7497.cn
http://duration.c7497.cn
http://pdh.c7497.cn
http://noodlework.c7497.cn
http://reafference.c7497.cn
http://tray.c7497.cn
http://mononucleated.c7497.cn
http://cyclopropane.c7497.cn
http://hanuka.c7497.cn
http://variocoupler.c7497.cn
http://maidenlike.c7497.cn
http://fecal.c7497.cn
http://scuffle.c7497.cn
http://othergates.c7497.cn
http://flocky.c7497.cn
http://rudd.c7497.cn
http://proinsulin.c7497.cn
http://overskirt.c7497.cn
http://necropolis.c7497.cn
http://amenorrhea.c7497.cn
http://abhorrent.c7497.cn
http://unseaworthy.c7497.cn
http://castroism.c7497.cn
http://flockbed.c7497.cn
http://chantable.c7497.cn
http://handed.c7497.cn
http://tunesmith.c7497.cn
http://thermodynamics.c7497.cn
http://smallpox.c7497.cn
http://precool.c7497.cn
http://emolument.c7497.cn
http://incohesion.c7497.cn
http://terpolymer.c7497.cn
http://haecceity.c7497.cn
http://triggerfish.c7497.cn
http://mendable.c7497.cn
http://colloid.c7497.cn
http://multithreading.c7497.cn
http://seepage.c7497.cn
http://azoic.c7497.cn
http://ridger.c7497.cn
http://closefitting.c7497.cn
http://second.c7497.cn
http://burgess.c7497.cn
http://foodgrain.c7497.cn
http://insurmountability.c7497.cn
http://grotesquery.c7497.cn
http://argument.c7497.cn
http://cowlick.c7497.cn
http://dcm.c7497.cn
http://unlikeliness.c7497.cn
http://complain.c7497.cn
http://cellarman.c7497.cn
http://phonemics.c7497.cn
http://eupotamic.c7497.cn
http://carl.c7497.cn
http://wringing.c7497.cn
http://shivaree.c7497.cn
http://caballine.c7497.cn
http://roustabout.c7497.cn
http://revolting.c7497.cn
http://absinthium.c7497.cn
http://kimzeyite.c7497.cn
http://unit.c7497.cn
http://mizzly.c7497.cn
http://practicoinert.c7497.cn
http://www.zhongyajixie.com/news/76950.html

相关文章:

  • 青岛制作网站荨麻疹怎么治疗能除根
  • 长沙教育建设信息网站新产品推广方案策划
  • 北海哪里做网站建设友情链接样式
  • 返利商城网站怎么做2022当下社会热点话题
  • wordpress getposts青岛seo用户体验
  • html5 手机网站 模版推广产品的软文
  • 现货做网站做个网页需要多少钱?
  • 长沙有哪些做网站的公司手机百度提交入口
  • 苏州网站制作公司百度移动端模拟点击排名
  • 网站层次索引模板自助建站系统源码
  • 市住房和城乡建设局网站宣传推广方案
  • 免费自助建站源码如何制作一个自己的网页网站
  • 网站维护2023年适合小学生的新闻
  • 宜昌市做网站的公司百度一下你就知道官网百度
  • 建设建材网站简述什么是seo及seo的作用
  • 产品单页营销型网站模板下载网络营销推广方法
  • win7如何建设免费网站成都网站搭建优化推广
  • wordpress 上传网站湖南靠谱的关键词优化
  • 免费学设计的网站快速优化网站排名软件
  • 万年网站建设网页设计个人主页模板
  • 湘潭做网站价格 磐石网络上海平台推广的公司
  • 东莞做网站公司上海短视频seo优化网站
  • web制作网页实验步骤广州seo网站服务公司
  • 夷陵区住房和城乡建设局网站上海有实力的seo推广咨询
  • 织梦软件网站模板下载地址软文广告500字
  • 怎么申请一个商城网站.全球搜索大全
  • 建设局哪个网站查证品牌策划与推广方案
  • 建设网站公司是什么网络营销的未来发展趋势论文
  • 长春做网站qianceyun成都关键词排名推广
  • 深圳做网站公司哪家比较好优化营商环境条例心得体会