微信小程序常用的事件
1.点击事件
WXML 中绑定点击事件:
<!-- index.wxml -->
<button bindtap="handleTap">点击我</button>
对应的 JS 文件中编写点击事件处理函数:
// index.js
Page({handleTap: function() {console.log('按钮被点击了');}
});
2.input事件
在微信小程序中,input
事件用于监听用户在输入框中输入内容的操作。当用户在输入框中输入内容时,会触发 input
事件,并可以获取到用户输入的内容。以下是一个简单的示例:
WXML 中绑定 input
事件:
<!-- index.wxml -->
<input placeholder="请输入内容" bindinput="handleInput" />
对应的 JS 文件中编写 input
事件处理函数:
// index.js
Page({handleInput: function(event) {console.log(event.detail.value);}
});
3.输入事件
在微信小程序中,除了input
事件外,还有一些其他与输入相关的事件可以用于处理用户在输入框中的操作。以下是一些常用的与输入相关的事件:
input
事件:用于监听输入框内容的实时输入变化。focus
事件:当输入框获得焦点时触发。blur
事件:当输入框失去焦点时触发。confirm
事件:用户在输入框中按下完成按钮时触发。keydown
事件:当用户按下键盘按键时触发。keypree
事件:当用户按下并释放键盘按键时触发。keyup
事件:当用户释放键盘按键时触发。
这些事件可以根据具体的需求来选择使用,例如可以通过监听input
事件实时获取用户输入的内容,在confirm
事件中处理用户输入完成的操作,在blur
事件中做一些失去焦点的处理等。
4.生命周期事件
每个页面都有一套生命周期事件,用来管理页面的初始化、渲染、交互等不同阶段的操作。以下是常见的页面生命周期事件:
onLoad
: 页面加载时触发,可以在其中获取页面参数并进行数据初始化操作。onShow
: 页面显示时触发,一般用于页面每次显示都需要执行的操作。onReady
: 页面初次渲染完成时触发,可以进行页面渲染完毕后的操作。onHide
: 页面隐藏时触发,一般用于清理页面数据或其他操作。onUnload
: 页面卸载时触发,一般用于清理页面数据、监听器等操作。onPullDownRefresh
: 下拉刷新时触发,一般用于处理下拉刷新的逻辑。onReachBottom
: 滚动到页面底部时触发,一般用于上拉加载更多数据。onShareAppMessage
: 用户点击转发按钮或右上角菜单“转发”时触发,可以自定义转发内容。
这些生命周期事件分别对应了页面不同阶段的操作,开发者可以根据需要重写这些生命周期事件,在相应的阶段执行对应的逻辑。通过合理使用生命周期事件,可以实现页面的初始化、数据处理、交互等功能,提升用户体验和页面性能。
5.页面滚动事件
可以通过监听scroll
事件来实现页面的滚动事件处理。当页面内容发生滚动时,会触发scroll
事件,开发者可以在事件处理函数中获取到页面滚动的相关信息,进行相应的逻辑处理。
监听页面滚动事件:
Page({onPageScroll: function(e) {console.log('页面滚动距离:', e.scrollTop);// 可以在这里处理页面滚动时的逻辑}
})
-
onPageScroll
生命周期函数用于监听页面滚动事件,每当页面滚动时都会触发这个函数。可以在函数内部获取滚动的距离等信息。 -
可以根据页面滚动的具体需求,进行一些动态效果、懒加载、导航栏显示隐藏等操作。
-
注意不要在滚动事件处理函数中进行过于频繁或复杂的操作,避免影响页面滚动的性能。
通过监听页面滚动事件,可以实现一些与页面滚动相关的交互效果
6.表单事件
表单组件常见的事件包括bindsubmit
、bindreset
、bindinput
和bindblur
等。这些事件用于处理表单提交、重置、输入以及失去焦点等操作。
1.bindsubmit
:
表单提交事件,在表单组件包含<form>
标签时,当用户点击提交按钮时会触发该事件。
<form bindsubmit="formSubmit"><!-- 表单内容 --><button formType="submit">提交</button>
</form>
2.bindreset
:
表单重置事件,在表单组件包含<form>
标签时,当用户点击重置按钮时会触发该事件。
<form bindreset="formReset"><!-- 表单内容 --><button formType="reset">重置</button>
</form>
3.bindinput
:
输入事件,在用户输入内容时实时触发该事件,可用于获取用户输入的内容并实时处理。
<input bindinput="inputChange" />
4.bindblur
:
失去焦点事件,在用户输入框失去焦点时触发,可用于实时校验输入内容或其他操作。
<input bindblur="inputBlur" />
通过合理使用表单事件,可以对用户的输入行为进行响应和处理,实现更加交互丰富的表单功能。
7.触摸事件
在微信小程序中,可以通过绑定一系列触摸事件来实现对用户触摸操作的响应。常用的触摸事件包括touchstart
、touchmove
、touchend
、touchcancel
等。这些触摸事件可以分别在用户开始触摸屏幕、移动手指、结束触摸、取消触摸等情况下触发相应的事件处理函数。
以下是常见的触摸事件以及事件处理的简要说明:
touchstart
:当手指触摸屏幕时触发,可以在事件处理函数中获取触摸点的坐标等信息。
touchmove
:当手指在屏幕上移动时触发,可以在事件处理函数中获取触摸移动的距离和方向等信息。
touchend
:当手指离开屏幕时触发,可以在事件处理函数中获取最后一次触摸点的坐标等信息。
touchcancel
:当触摸动作被打断,如系统事件、手指移出屏幕等情况触发。一般在触摸过程中发生系统事件(如来电)时触发。
<view
bindtouchstart="touchStart"
bindtouchmove="touchMove"
bindtouchend="touchEnd"
bindtouchcancel="touchCancel"
class="touch-view"></view>
Page({touchStart: function(e) {console.log('触摸开始:', e.changedTouches[0]);},touchMove: function(e) {console.log('触摸移动:', e.changedTouches[0]);},touchEnd: function(e) {console.log('触摸结束:', e.changedTouches[0]);},touchCancel: function(e) {console.log('触摸取消:', e.changedTouches[0]);}
})
8.自定义事件
在微信小程序中,可以通过自定义事件来实现组件之间的通信,或者在页面中实现不同部分之间的交互。自定义事件可以通过triggerEvent
触发,也可以通过bind
和catch
来监听和捕获自定义事件。
以下是自定义事件的基本使用方法:
1.触发自定义事件:在组件中使用 triggerEvent
方法触发自定义事件,可以传递参数给事件处理函数。
// 在组件中触发自定义事件
this.triggerEvent('customEventName', { data: 'custom data' });
2.监听自定义事件:在组件或页面中使用 bind
来监听自定义事件,然后在对应的事件处理函数中处理逻辑。
<!-- 在组件或页面中监听自定义事件 -->
<child-component bind:customEventName="onCustomEvent" />
// 在组件或页面中定义自定义事件的处理函数
Page({onCustomEvent: function(event) {console.log('接收到自定义事件', event.detail);}
})
3.捕获自定义事件:在组件或页面中使用 catch
来捕获自定义事件,然后在对应的事件处理函数中处理逻辑。
<!-- 在组件或页面中捕获自定义事件 -->
<child-component catch:customEventName="onCustomEventCapture" />
// 在组件或页面中定义自定义事件的捕获处理函数
Page({onCustomEventCapture: function(event) {console.log('捕获到自定义事件', event.detail);}
})
相关文章:
微信小程序常用的事件
1.点击事件 WXML 中绑定点击事件: <!-- index.wxml --> <button bindtap"handleTap">点击我</button> 对应的 JS 文件中编写点击事件处理函数: // index.js Page({handleTap: function() {console.log(按钮被点击了);} }…...
js时间转成xx前
// 时间戳转多少分钟之前 export default function getDateDiff(dateTimeStamp) {// console.log(dateTimeStamp,dateTimeStamp)// 时间字符串转时间戳var timestamp new Date(dateTimeStamp).getTime();var minute 1000 * 60;var hour minute * 60;var day hour * 24;var …...
iOS 锁总结(cc)
iOS中atomic和synchrosize锁的本质是什么? 在iOS中,atomic和@synchronized锁的本质涉及底层的多线程同步机制。以下是关于这两者本质的详细解释: atomic 定义与用途: atomic是Objective-C属性修饰符的一种,用于指示属性的存取方法是线程安全的。当一个属性被声明为ato…...

【CSAPP】-binarybomb实验
目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果(可贴图) 操作异常问题与解决方案 实验总结 实验目的与要求 1. 增强学生对于程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。 2. 掌握使用gdb调试器…...

SpringBoot实战:轻松实现XSS攻击防御(注解和过滤器)
文章目录 引言一、XSS攻击概述1.1 XSS攻击的定义1.2 XSS攻击的类型1.3 XSS攻击的攻击原理及示例 二、Spring Boot中的XSS防御手段2.1 使用注解进行XSS防御2.1.1 引入相关依赖2.1.2 使用XSS注解进行参数校验2.1.3 实现自定义注解处理器2.1.4 使用注解 2.2 使用过滤器进行XSS防御…...

如何改善提示词,让 GPT-4 更高效准确地把视频内容整体转换成文章?
(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 让我们来讨论一下大语言模型应用中的一个重要原则 ——「欲速则不达」。 作为一个自认为懒惰的人,我一直有一个愿望:完成视频制作…...

TensorBoard进阶
文章目录 TensorBoard进阶1.设置TensorBoard2.图像数据在TensorBoard中可视化3.模型结构在TensorBoard中可视化(重点✅)4.高维数据在TensorBoard中低维可视化5.利用TensorBoard跟踪模型的训练过程(重点✅)6.利用TensorBoard给每个…...

使用AES加密数据传输的iOS客户端实现方案
在现代应用开发中,确保数据传输的安全性是至关重要的。本文将介绍如何在iOS客户端中使用AES加密数据传输,并与服务器端保持加密解密的一致性。本文不会包含服务器端代码,但会解释其实现原理。 加密与解密的基本原理 AES(Advance…...

vue3【实战】语义化首页布局
技术要点,详见注释 <script setup></script><template><div class"page"><header>页头</header><nav>导航</nav><!-- 主体内容 --><main class"row"><aside>左侧边栏<s…...
FANG:利用社交网络图进行虚假新闻检测
1.概述 社交媒体已逐渐演变成为公众获取信息的主要途径。然而,值得警惕的是,并非所有流通的信息都具备真实性。特别是在政治选举、疫情爆发等关键节点,带有恶意企图的虚假信息(即“假新闻”)可能会对社会秩序、公平性和理性思考造成严重的干扰。作为全球抗击COVID-19的一部…...
Vue2 基础八电商后台管理项目——中
代码下载 商品分类页 新商品分类组件 goods/Cate.vue,在router.js中导入子级路由组件 Cate.vue,并设置路由规则。 绘制商品分类基本结构 在Cate.vue组件中添加面包屑导航以及卡片视图中的添加分类按钮: <template><div><…...
Typescript window.localStorage 存储 Obj Value区别
window.localStorage.setItem(UserC, JSON.stringify(userC)) const userC JSON.parse(window.localStorage.getItem(UserC) || {}) 不能获得UserC,所有保存的时候需要存储value,而不是对象。 {"__v_isShallow":false, "__v_isRef&quo…...
Linux要解压 .rar 文件,你应该使用 unrar 命令
命令 sudo tar -zxf ~/WebDemo.rar -C /usr/local 有一些问题。tar 命令通常用于解压 .tar、.tar.gz 或 .tar.bz2 文件,而不是 .rar 文件。要解压 .rar 文件,你应该使用 unrar 命令。下面是正确的步骤: 首先,安装 unrar࿰…...

【qt】如何获取网卡的信息?
网卡不只一种,有有线的,有无线的等等 我们用QNetworkInterface类的静态函数allInterfaces() 来获取所有的网卡 返回的是一个网卡的容器. 然后我们对每个网卡来获取其设备名称和硬件地址 可以通过静态函数humanReadableName() 来获取设备名称 可以通过静态函数**hardwareAddre…...

使用Netty框架实现WebSocket服务端与客户端通信(附ssl)
仓库地址: https://gitee.com/lfw1024/netty-websocket 导入后可直接运行 预览页面 自签证书: #换成自己的本地ip keytool -genkey -alias server -keyalg RSA -validity 3650 -keystore D:\mystore.jks -ext sanip:192.168.3.7,ip:127.0.0.1,dns:lo…...

ssm校园志愿服务信息系统-计算机毕业设计源码97697
摘 要 随着社会的进步和信息技术的发展,越来越多的学校开始重视志愿服务工作,通过组织各种志愿服务活动,让学生更好地了解社会、服务社会。然而,在实际操作中,志愿服务的组织和管理面临着诸多问题,如志愿者…...

JVM原理(二):JVM之HotSpot虚拟机中对象的创建寻位与定位整体流程
1. 对象的创建 遇到new指令时 当Java虚拟机遇到一个字节码new指令时。 首先会去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否被加载、解析和初始化过。 如果没有,那么必须执行类的加载过程(加载、检查…...

(七)glDrawArry绘制
几何数据:vao和vbo 材质程序:vs和fs(顶点着色器和片元着色器) 接下来只需要告诉GPU,使用几何数据和材质程序来进行绘制。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostrea…...

记一次小程序渗透
这次的小程序渗透刚好每一个漏洞都相当经典所以记录一下。 目录 前言 漏洞详情 未授权访问漏洞/ 敏感信息泄露(高危) 水平越权(高危) 会话重用(高危) 硬编码加密密钥泄露(中危࿰…...
C++ 的常见算法 之一
C 的常见算法 之一 不修改序列算法for_eachcountfind 修改序列算法copymove 不修改序列算法 for_each #include <iostream> // std::cout #include <algorithm> // std::for_each #include <vector> // std::vectorusing namespace std;struc…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...