IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序 | 小程序的事件处理 -> 正文阅读

[移动开发]微信小程序 | 小程序的事件处理

🖥? 微信小程序?专栏:小程序的事件处理
🧑?💼 个人简介:一个不甘平庸的平凡人🍬

? 个人主页:CoderHing的个人主页

🍀 格言: ?? 路漫漫其修远兮,吾将上下而求索??

👉 你的一键三连是我更新的最大动力??


目录

一、小程序的事件监听

事件的监听

二、常见事件类型划分

组件的特殊事件

三、事件对象属性分析

事件对象event

currentTarget和target的区别

touches和changedTouches的区别(比较少用到)

四、事件参数传递方法

事件参数的传递

五、事件传递案例练习

六、逻辑传递数据另外一种方式:Mark


一、小程序的事件监听

事件的监听

  • 什么时候会产生事件?
  • 小程序需要经常和 用户进行交互,如点击某个按钮,滑动某个区域;
  • 事件是 视图层到逻辑层的通讯方式
  • 可以将用户的行为反馈到逻辑层?进行处理
  • 事件 可以绑定在组件上,当触发事件时,就会执行逻辑层中对应的事件处理函数
  • 事件对象可以携带额外信息,如: id,dataset,touches

  • 事件如何处理?
  • 通过?bind/catch这个属性?绑定在组件上的(和普通的属性写法相似 以key="value"形式)
  • Key 以 bind或catch开头,从1.5.0版本开始, 可以在bind和catch后加上一个冒号
  • 同时在当前页面的Page构造器中 定义对应的事件处理函数,若没有对应的函数,触发会报错
  • 如 当用户点击 button按钮时,达到触发条件生成事件Tap,该事件处理函数会被执行,同时会受到一个事件对象event

二、常见事件类型划分

组件的特殊事件

  • 某些组件会有自己特性的事件类型
  • 如input有bindinput/bindblur/bindfocus
  • 如scroll-view有bindscrolltowpper/bindscrolltolower

三、事件对象属性分析

事件对象event

  • 当某个事件触发时, 会产生一个事件对象, 这个对象被传入到回调函数中, 事件对象有哪些常见的属性呢?

currentTarget和target的区别

?

JavaScript
js文件代码展示
??onOuterViewTap(event){
????console.log("onOuterViewTap:",event);
????// 1.target表示 => 触发事件的元素
????// 2.currentTarget => 处理事件的元素
????// {type: "tap", timeStamp: 841947, target: {…}, currentTarget: {…}, mark: {…}, …}
????console.log(event.target); // {id: "", offsetLeft: 0, offsetTop: 40, dataset: {…}}
????console.log(event.currentTarget); // {id: "", offsetLeft: 0, offsetTop: 40, dataset: {…}}
????// 这个时候 这两个是没有区别的
????console.log(event.target === event.currentTarget); // false 它内部 可能是 new了两个 target
????// 触发事件的组件:inner/蓝色 ?处理事件的组件:outer/粉色

????// 3.获取自定义属性 name
????// const name = event.target.dataset.name // 这样是拿不到的 (点击中间蓝色视图)
????const name = event.currentTarget.dataset.name // 那自定义属性,最好使用currentTarget拿
????console.log(name)
??}

touches和changedTouches的区别(比较少用到)

  • touches和changedTouches 都是记录 手指在对屏幕进行触摸时的触摸点
  • 在一个手指 先按住, 过一秒之后,不松开 再陆续对屏幕进行触摸三次(不松手)时,touches此时有4个元素,而changedTouches 只有三个
  • 在touchend中也不同
  • ?

四、事件参数传递方法

事件参数的传递

  • 当视图层发生事件时,一些情况是需要事件携带一些参数到执行的函数中, 这个时候就可以通过data-属性来完成:
  • 格式:data-属性的名称
  • 获取: e.currentTarget.dataset. 属性的名称

五、事件传递案例练习

?

六、逻辑传递数据另外一种方式:Mark

?

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:21:31  更:2022-12-25 11:25:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 18:08:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码