百度智能小程序,如何设置及使用数据data?
发布于 作者:苏南大叔 来源:程序如此灵动~

在本文中,苏南大叔主要描述设置页面数据变量,及如何使用数据变量。在定义数据以及数据使用这个方面,百度智能小程序(或者说微信小程序)的处理方式,和react
是非常类似的。如果大家学习过react
的话,在这里对数据的处理就会非常容易上手。
本文测试环境:mac
/百度开发者工具@2.4.3
。
定义数据
<page>.js
:
Page({
data: {
"str":"test",
"arr":[
{
mode: 'scaleToFill'
},
{
mode: 'widthFix'
},
],
num: 0,
obj: {
text: 'init data'
}
},
//...
});
修改数据
<page>.js
:
this.setData({
str: 'changed data'
});
this.setData({
num: 1
});
特殊的setData
方式:
// 对于对象或数组字段,可以直接修改一个子字段,这样方式会有带来更好的性能
this.setData({
'arr[0].mode':'changed data'
});
this.setData({
'obj.text': 'changed data'
});
this.setData({
'newField.text': 'new data'
});
这个this.setData
要注意的地方有:
- 选个合适的时机,比如
onLoad
,或者bind
系列的某些事件。 - 如果在
ajax
里面的success
回调使用的话,还需要注意this.
作用域的问题。
显示数据
{{text}}
{{num}}
{{arr[0].text}}
{{obj.text}}
{{newField.text}}
循环数据
<view s-for="item in arr">
{{item.mode}}
</view>
相关文章
总结
在小程序开发过程中,设置及使用数据data
,是非常常见的操作。更多智能小程序的经验文章,请参见苏南大叔的博客:


