【微信小程序】一文学懂小程序的数据绑定和事件绑定

简介: 【微信小程序】一文学懂小程序的数据绑定和事件绑定

1.数据绑定


数据绑定的基本原则:

  1. 在 data 中定义数据
  2. 在 WXML 中使用数据


在页面对应的 .js 文件中,把数据定义到 data 对象中,然后把data中的数据绑定到页面中渲染,使用 Mustache 语法(双大括号)将变量包起来即可。

<view>{{数据名称}}<view>


使用案例:

首先在data中定义数据,然后在wxml中通过Mustache语法把数据渲染到页面上。

data: {
    info:'helloworld',
  }
<view>{{info}}</view>

1.1.png


Mustache 语法的应用:

  • 动态绑定内容
  • 动态 绑定属性
  • 运算(三元运算、算术运算等)


1.1动态绑定内容


在 data 中定义数据:

1.2.png


在wxml中使用数据:

.1.3.png

1.2动态绑定事件


页面数据如下:

1.4.png


页面结构如下:

1.5.png

1.3三元运算


页面数据:

1.6.png


页面结构:

1.7.png

1.4算术运算


页面数据如下:

1.8.png


页面结构如下:

1.9.png

2.事件绑定


2.1什么是事件


事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。

1.10.png

2.2小程序中常用的事件


类型

绑定方式

事件描述

tap

bindtap 或 bind:tap

手指触摸后马上离开,类似于 HTML 中的 click 事件

input

bindinput 或 bind:input

文本框的输入事件

change

bindchange 或 bind:change

状态改变时触发


2.3事件对象的属性列表


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

1.11.png

2.4 target 和 currentTarget 的区别


target 是触发该事件的源头组件,而 currentTarget 则是当前事件所绑定的组件。举例如下:

1.12.png


点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层 view 的 tap 事件处理函数。此时,对于外层的 view 来说:

  • e.target 指向的是触发事件的源头组件,因此,e.target 是内部的按钮组件
  • e.currentTarget 指向的是当前正在触发事件的那个组件,因此,e.currentTarget 是当前的 view 组件


2.5 bindtap 的语法格式


在小程序中,不存在 HTML 中的 onclick 鼠标点击事件,而是通过 tap 事件来响应用户的触摸行为。通过 bindtap,可以为组件绑定 tap 触摸事件,语法如下:

1.13.png


在页面的 .js 文件中定义对应的事件处理函数,事件参数通过形参 event(一般简写成 e) 来接收:

1.14.png

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


通过调用 this.setData(dataObject) 方法,可以给页面 data 中的数据重新赋值,示例如下:

1.15.png

2.7 事件传参


小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。例如,下面的代码将不能正常工作:

1.16.png


因为小程序会把 bindtap 的属性值,统一当作事件名称来处理,相当于要调用一个名称为 btnHandler(123) 的事件处理函数。

1.17.png


可以为组件提供 data-* 自定义属性传参,其中 * 代表的是参数的名字,示例代码如下:

最终:

  • info 会被解析为参数的名字
  • 数值 2 会被解析为参数的值


在事件处理函数中,通过 event.target.dataset.参数名 即可获取到具体参数的值,示例代码如下:

210.18.png

2.8 bindinput 的语法格式


在小程序中,通过 input 事件来响应文本框的输入事件,语法格式如下:

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

1.19.png.


在页面的 .js 文件中定义事件处理函数:

1.20.png

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


实现步骤:

  1. 定义数据
  2. 渲染结构
  3. 美化样式
  4. 绑定 input 事件处理函数


定义数据:

2.1.png

渲染结构

2.2.png


美化样式:

2.3.png


绑定 input 事件处理函数

2.4.png

目录
相关文章
|
2月前
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
2月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
6月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
1385 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
6月前
|
JSON 监控 小程序
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
573 14
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
|
8月前
|
存储 移动开发 小程序
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
850 2
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
218 1
|
9月前
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
595 3
|
9月前
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
701 8
|
9月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
2895 12
|
9月前
|
小程序
微信小程序数据绑定与事件处理:打造动态交互体验
在上一篇中,我们学习了搭建微信小程序开发环境并创建“Hello World”页面。本文深入探讨数据绑定和事件处理机制,通过具体案例帮助你打造更具交互性的小程序。数据绑定使用双花括号`{{}}`语法,实现页面与逻辑层数据的动态关联;事件处理则通过`bind`或`catch`前缀响应用户操作。最后,通过一个简单的计数器案例,巩固所学知识。掌握这些核心技能,将助你开发更复杂的小程序。

热门文章

最新文章