ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

CSDN博客-数据和事件绑定

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 性能建议
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进