千家信息网

微信小程序中怎么响应用户输入事件

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这期内容当中小编将会给大家带来有关微信小程序中怎么响应用户输入事件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。微信小程序中如何响应用户输入事件让我们进一步学习微信
千家信息网最后更新 2024年10月23日微信小程序中怎么响应用户输入事件

这期内容当中小编将会给大家带来有关微信小程序中怎么响应用户输入事件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

微信小程序中如何响应用户输入事件

让我们进一步学习微信小程序控制器,掌握在小程序控制器中响应用户输入的方法。

这个例子很简单,在微信小程序的视图index.wxml里,我定义了一个按钮,和一个文本元素。

{{counter}}

文本元素绑定到小程序数据模型的counter字段上,是一个计数器。按钮绑定了一个事件处理函数jerry_increase。每点击一次按钮,微信小程序UI上的计数器加一。

为此,首先需要在控制器index.js的data数据模型里增添一个counter字段。

然后实现button的bindtap绑定的函数jerry_increase。可以看到这个事件处理函数有一个输入参数e:

当事件处理函数被调用时,这个输入参数e是微信框架自动传入到事件处理函数的。通过微信开发者工具的调试器可以看到这个参数e的明细:tap事件发生的X和Y坐标,以及事件类型tap。

我们如果从当前控制器事件处理函数执行栈向外观察,发现它的前一层,即微信框架层的处理逻辑里,在调用事件处理函数前后分别取两个当前的时间戳。如果时间戳之差大于1000毫秒,会执行第30365行的Reporter.slowReport。由此我们看出,微信希望开发者实现的事件处理函数要尽可能高效,执行时间不能超过1秒。在手机使用场景里,1秒的等待时间对于最终用户来说是一个相当长的时间了。

另一个值得一提的知识点是,如果直接用JavaScript修改数据模型的值,则UI不会有任何变化。

下面是错误的做法:

jerry_increase: function(e){     this.data.counter = this.data.counter + 1;},

下面是正确的做法:

jerry_increase: function(e){  this.setData({       counter: this.data.counter + 1});},

我们可以通过单步调试正确的做法来理会其中的奥妙:

可以看到this.setData里面会调用微信框架的c.default.emit函数,把最新的数据通过emit函数投递出去。

继续查看emit的实现,可以发现emit又调用了微信工具类wx的方法:invokeWebviewMethod。从WAService.js的内部实现,我们能发现其实微信小程序在手机上的执行实际是运行在WebView里的。

一旦WeixinJSBridge.publish.apply(WeixinJSBridge, e)这一行代码执行完毕,UI上的计数器才被刷新。

上述就是小编为大家分享的微信小程序中怎么响应用户输入事件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

事件 函数 程序 处理 输入 用户 时间 控制器 数据 控制 做法 参数 按钮 框架 模型 计数器 元素 内容 字段 工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 腾讯服务器保留转账记录吗 云数据库doc查询 长沙软件开发产业现状 陕西秦香汇网络技术有限公司 黑龙江省网络安全宣传周视频 软件开发开办费包括哪些 软件开发及销售公司名 成都教育网络安全展 数据库技术计算机三级 上海夺畅网络技术有限公司深圳分公司面试 服务器上安全软件下载 剑网3斗转星移服务器多少年建的 数据库备份有几种方式 制造业的软件开发岗位 ajax软件开发技术有用吗 软件开发与项目管理名词解释笔记 软件开发与软件管理关系 怎样将exe文件导入数据库 商丘市网络安全课堂第五期 豫苗通服务器修好了没 企业网络安全看法 c 获取数据库中字段类型 奥地利服务器 云服务器安全事件 服务器塞机 多媒体技术与网络技术 实验九 数据库安全 软件开发专业研究生学习课程名称 为什么软件开发网页设计是青春饭 房地产开成本数据库
0