【微信小程序】一文带你了解数据绑定、事件绑定以及事件传参、数据同步

简介: 【微信小程序】一文带你了解数据绑定、事件绑定以及事件传参、数据同步

数据绑定


基本原则


  1. 在data中定义数据


  1. 在WXML中使用数据


在data中定义数据


在页面对应的.js 文件中,把数据定义到data对象中即可。



Mustache语法


把data中的数据绑定到页面中渲染,使用 Mustache语法(双大括号) 将变量包起来即可。


语法:<view>{{定义的数据名称}}</view>



Mustache语法的应用


绑定内容


绑定内容即为文本的绑定,就如上述例子中将一个字符串绑定到view的文本节点中。


绑定属性


绑定属性即将一个数据绑定在一个标签的属性节点中。


如:在页面js文件的data中添加一个src数据。



在页面wxml文件中使用Mustache语法将其绑定在image标签的属性节点中。



运算(三元运算、算术运算等)


在小程序的编译中也可以进行运算操作。


三元运算


如:


在页面js文件中添加data数据。



在页面.wxml中绑定该数据,并进行判断.



算数运算


如:


在页面js文件中的data中添加数据。



在页面wxml中进行数据绑定,并进行计算。



事件绑定


什么是事件?


事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。与html类似,相当于用户与小程序的交互。


常用事件


事件 用法 说明
tap bindtap/bind:tap 手指触摸后马上离开,相当于html中的click事件
input bindinput/bind:input 文本框的输入事件
change bindchange/bind:change 状态改变时触发


事件对象属性


当事件回调触发的时候,会收到一个事件对象event(与js中的事件对象类似),它的详细属性如下表所示:


属性 类型 说明
type String 事件类型
timeStamp Integer 页面打开到触发事件所经过的毫秒数
target object 触发事件的组件的一些属性值集合
currentTarget object 当前组件的一些属性值集合
detail object 额外的信息
touches Array 触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouches Array 触摸事件,当前变化的触摸点信息的数组


target与currentTarget的区别


event.target返回的是触发该事件的源头组件,而currentTarget则返回的是当前事件所绑定的源头组件。


如:



给view绑定了单击事件,在该事件下有一个按钮组件,当我们单击按钮时,event.target返回的就是这个按钮组件。而event.currentTarget返回的就是view这个绑定事件的源头组件。因此,常用到的是target属性而非currentTarget属性。


bindtap语法格式


在小程序中,不存在HTML中的onclick鼠标点击事件,而是通过tap事件来响应用户的触摸行为。


  1. 通过bindtap给组件绑定tap触摸事件。


如下图所示:


在页面wxml文件中绑定触摸事件



  1. 在页面js中定义相应的事件处理函数,事件属性通过传入一个形参来接收。通常为event。



当点击按钮时,控制台便会输出。



在事件处理函数中为data赋值


使用this.setData()方法可以修改data中的数据。


  1. 在data中定义数据。



  1. 为事件响应函数添加this.setData方法,并修改其数值。



  1. 在wxml文件中绑定数据



实现效果:



事件传参


小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。如:


<button type="primary" bindtap="butnTap(3)">点击按钮+3</button>


这里并不能为butnTap事件函数传递参数,而是将butnTap(3)作为事件函数名。


为事件传递参数时,使用data-参数名="{{参数值}"}来传递参数。如:


<button type="primary" bindtap="butntTap" data-num="{{3}}">点击按钮+3</button>


查看参数


通过event.target.dataset.参数名可查看我们设置的参数。



通过该参数也可修改data中的数值。



此时点击按钮就自增加3



bindinput语法格式


  1. 通过bindinput,可以为文本框绑定输入事件


<input bindinput="inputBd" ></input>


  1. 在页面js文件中定义事件处理函数。


  1. 通过even.detail.value来获取文本框中的内容。



实现文本框与data之间的数据同步


实现步骤:


  • 定义数据


在页面js文件中定义文本数据



  • 渲染结构


设置value默认值。


<input bindinput="inputBd" value="{{text}}"></input>


  • 美化样式


将文本框美化一下


input{
    border: 1px solid blue;
    border-radius: 5px;
}


  • 绑定input 事件处理函数


 inputBd(event){
      // console.log(event.detail.value);
      this.setData({
          text:event.detail.value
      })
  }


输入文本,此时data中的text也随之改变。


目录
相关文章
|
7月前
|
小程序
微信小程序数据绑定与事件处理:打造动态交互体验
在上一篇中,我们学习了搭建微信小程序开发环境并创建“Hello World”页面。本文深入探讨数据绑定和事件处理机制,通过具体案例帮助你打造更具交互性的小程序。数据绑定使用双花括号`{{}}`语法,实现页面与逻辑层数据的动态关联;事件处理则通过`bind`或`catch`前缀响应用户操作。最后,通过一个简单的计数器案例,巩固所学知识。掌握这些核心技能,将助你开发更复杂的小程序。
|
小程序 JavaScript
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
本文介绍了微信小程序中的数据绑定、事件绑定、事件传参与数据同步的基本概念和使用方法,包括如何在data对象中定义数据、使用mustache语法在wxml中渲染数据、绑定和处理事件、事件对象属性、事件传参以及实现输入框与data数据的同步。
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
|
JSON 小程序 JavaScript
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
|
11月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
2524 7
|
11月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
2005 1
|
11月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
1761 7
|
5月前
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
6月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
1912 11
技术小白如何利用DeepSeek半小时开发微信小程序?
ly~
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
259 6
|
5月前
|
小程序 关系型数据库 Java
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。

热门文章

最新文章