首页/新闻资讯/正文详情

CSDN博客-数据和事件绑定

发布时间:2026/9/23 18:07:48 来源:云帆数科 栏目:资讯中心
CSDN博客-数据和事件绑定
微信小程序案例3.4数据绑定和事件绑定详解与实现一、案例描述设计一个小程序演示数据绑定和事件绑定的功能和实现方法。本案例通过index.wxml页面中的 Mustache 语法双大括号与index.js中的data数据进行绑定并使用button组件的bind:tap事件绑定点击处理函数配合this.setData()方法演示数据更新与视图刷新的完整流程。二、知识要点1. 什么是数据绑定WXML 中的数据绑定使用 Mustache 语法双大括号将变量包起来与index.js中data对象的数据建立绑定关系。这种方式的绑定是单向的数据只能由index.js传递给index.wxml。2. 数据绑定的几种形式绑定形式写法示例普通数据绑定直接使用变量名{{a}}对象绑定对象名.属性名数据路径运算{{student.stuId}}数组绑定数组名[下标]{{array[0]}}算术运算绑定使用表达式运算{{a b c}}3. 什么是事件绑定button组件通过bind:tapmodify绑定了一个点击事件处理函数modify。当用户点击按钮时逻辑层执行modify()函数内部通过调用this.setData()修改绑定的数据。执行setData()会将数据从逻辑层传输到视图层触发视图层页面渲染更新。三、实现步骤1. 修改 index.wxml 文件在index.wxml中编写数据绑定和事件绑定的页面结构通过{{}}语法绑定数据通过bind:tap绑定点击事件!--index.wxml--navigation-bartitle数据和事件绑定back{{false}}colorblackbackground#FFF/navigation-barscroll-viewclassscrollareascroll-ytypelistviewclassboxviewclasstitle各种类型的数据绑定示例/viewviewclasstxt-styleview算术运算绑定: {{a}}{{b}}{{c}}{{a b c}}/viewview对象绑定--学号: {{student.stuId}}/viewview对象绑定--姓名: {{student.name}}/viewview对象绑定--生日: {{student.birthDay}}/viewview对象绑定--专业: {{student.major}}/viewview数组绑定--array[0]: {{array[0]}}/viewview数组绑定--array[1]: {{array[1]}}/viewview数组绑定--array[2]: {{array[2]}}/view/viewbuttontypeprimarybind:tapmodify修改绑定数据/button/view/scroll-view2. 修改 index.js 文件在index.js的data对象中初始化绑定的数据并定义modify事件响应函数通过this.setData()修改绑定数据// index.jsPage({data:{a:10,b:20,c:30,student:{stuId:20250822,name:张三,birthDay:2005-09-01,major:软件工程和大数据},array:[2023,2024,2025]},// 事件响应函数modify(){this.setData({a:100,b:200,c:300,student:{stuId:20220123,name:李四,birthDay:2002-12-10,major:软件工程和大数据},array:[2018,2019,2020]})}})3. 修改 index.wxss 文件其中page和.scrollarea的样式定义是创建项目的时候自动生成的其它是新增的/**index.wxss**/page{height:100vh;display:flex;flex-direction:column;}.scrollarea{flex:1;overflow-y:hidden;}.txt-style{font-size:40rpx;line-height:2em;margin-left:20rpx;}4. 修改 app.wxss 文件在app.wxss中定义内容卡片.box和标题.title的样式/**app.wxss**/.box{/* 设置外边距 */margin:20rpx;/* 设置内边距 */padding:20rpx;/* 设置边框 */border:2rpx solid silver;}.title{/* 设置字体大小 */font-size:40rpx;/* 设置字体加粗 */font-weight:bolder;/* 设置居中对齐 */text-align:center;/* 设置下外边距 */margin-bottom:30rpx;/* 设置字体颜色 */color:red;}5. 增加学生的专业属性案例扩展在作业要求中需要在学生的结构中增加专业属性主要分三步完成第一步在index.js的data.student对象中增加major字段值为软件工程和大数据第二步在index.wxml中增加一行对象绑定–专业的绑定通过数据路径{{student.major}}展示专业信息第三步在modify()事件函数中同步保留major字段保证点击按钮后专业信息仍然正常显示。四、运行效果1. 页面初始状态编译运行后页面显示内容如下算术运算绑定10203060 对象绑定--学号20250822 对象绑定--姓名张三 对象绑定--生日2005-09-01 对象绑定--专业软件工程和大数据 数组绑定--array[0]2023 数组绑定--array[1]2024 数组绑定--array[2]20252. 点击修改绑定数据按钮点击按钮以后页面的数据发生变化算术运算绑定100200300600 对象绑定--学号20220123 对象绑定--姓名李四 对象绑定--生日2002-12-10 对象绑定--专业软件工程和大数据 数组绑定--array[0]2018 数组绑定--array[1]2019 数组绑定--array[2]2020结论点击按钮后modify()函数通过this.setData()将数据从逻辑层传输到视图层触发视图层页面渲染更新实现数据绑定的动态更新效果。五、总结数据绑定使用 Mustache 语法双大括号将变量包起来这种绑定是单向的数据只能由index.js传递给index.wxml。普通数据绑定直接使用变量名实现对象绑定通过对象名.属性名实现也称为数据路径运算数组绑定通过下标变量实现。Mustache 语法支持算术运算等简单表达式可以直接在页面中渲染计算结果。button组件通过bind:tap绑定点击事件处理函数事件函数中调用this.setData()修改数据并触发视图更新。使用setData()时应只传入发生变化的字段并控制调用频率避免引发性能问题。参考文档微信小程序 WXML 数据绑定微信小程序 setData 性能建议

相关推荐

基于Spark的共享单车数据分析系统:从数据清洗到可视化大屏实战
基于Spark的共享单车数据分析系统:从数据清洗到可视化大屏实战

简介:这是一份基于 Spark 的共享单车数据分析前端与后端完整代码,定位为毕业设计优质项目,主要面向计算机相关专业正在准备毕设的学生,以及需要项目实战练习的学习者,也可作为课程设计、期末大作业或实训项目参考。项目… · 2026/9/23 18:07:42

Word度量单位详解:Points、Inches与EMUs换算及POI开发避坑指南
Word度量单位详解:Points、Inches与EMUs换算及POI开发避坑指南

1. 从"度量单位无效"说起:为什么这么小的一件事能卡住一整天做Word相关开发的人,早晚都会撞上一次类似"word度量单位无效"的诡异问题。我自己就曾经在服务端用Apache POI生成表格时,明明把列宽参数传进去了,生… · 2026/9/23 18:07:34

拍照比较好的手机最佳实践:3个高频面试坑与代码拆解
拍照比较好的手机最佳实践:3个高频面试坑与代码拆解

拍照比较好的手机最佳实践:3个高频面试坑与代码拆解 很多刚入行的同学,语法背得滚瓜烂熟,LeetCode 算法题也能硬刷,但面试官一问你“如果让你设计一个拍照比较好的手机相册管理功能,或者处理高并发下的图片上传与压缩,你该怎么落地”,瞬间就… · 2026/9/23 18:07:34

基于 PaddleHub 的 MSGNet 风格迁移实战:从 Fine-tune 到服务化部署(PaddleFormers 仓库指南)
基于 PaddleHub 的 MSGNet 风格迁移实战:从 Fine-tune 到服务化部署(PaddleFormers 仓库指南)

人工智能预训练微调模型推理服务 【免费下载链接】PaddleFormers PaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle. 项目地址: https://gitcode.com/gh_mirrors/pa/PaddleFormers 点击查看 免费下载 导读… · 2026/9/23 18:39:54

10款提升MBA论文质量的智能写作工具
10款提升MBA论文质量的智能写作工具

1. 学术写作工具的革命性升级去年帮导师审阅MBA论文时,我发现一个有趣现象:那些结构严谨、文献翔实的优秀论文,作者们都不约而同地在致谢部分提到了智能写作工具。这促使我系统测试了市面上主流的学术辅助软件,最终筛选出10款真正… · 2026/9/23 18:39:48

open-code-review:基于Git的开源代码审查协作协议
open-code-review:基于Git的开源代码审查协作协议

1. 这不是又一个“AI代码审查”玩具,而是一套可嵌入开发流水线的开源协作协议你有没有遇到过这样的场景:团队里新同学提交了PR,你点开diff页面,第一反应不是看逻辑,而是先翻Git历史——确认他是不是把.env文件误提交了… · 2026/9/23 18:39:48

Word批量转PDF工具:高效文档转换技术解析
Word批量转PDF工具:高效文档转换技术解析

1. 工具概述与核心功能解析在日常办公场景中,文档格式转换是高频需求。这款Word批量转PDF工具的核心价值在于解决了多文档连续处理的痛点。与常规单文件转换不同,它实现了真正的批量处理能力,支持同时导入数十个Word文档(.doc/.do… · 2026/9/23 18:39:42

记忆棒手写实现保姆级教程:告别卡顿的3个性能坑
记忆棒手写实现保姆级教程:告别卡顿的3个性能坑

记忆棒手写实现保姆级教程:告别卡顿的3个性能坑 还在死磕语法细节?刚学会几个API,脑子一热想搭个完整项目,结果卡在“这块逻辑怎么串起来”上,代码跑不起来,心态直接崩了。别慌,这种“懂皮毛、缺骨架”的痛点,90%的开发者都踩过。今天这篇保姆… · 2026/9/23 18:39:42

OpenResearch实践指南:从论文交付到过程开源的研究范式转型
OpenResearch实践指南:从论文交付到过程开源的研究范式转型

第一次认真琢磨 OpenResearch 这个词,是去年帮一位研究生朋友整理课题数据的时候。他辛辛苦苦做了半年的实验,代码、问卷、分析脚本全都躺在硬盘里,最后只交出去一篇 PDF 论文。我问他要原始数据,他先是一愣,然后说“那… · 2026/9/23 18:39:41

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码