主题
数据与 setData
页面和组件的 data 是渲染层数据源。只能通过 setData 驱动视图更新;直接修改 this.data 不会更新页面。
js
Page({
data: { user: null, items: [] },
updateUserName(name) {
this.setData({ 'user.name': name })
},
})规则
setData支持路径键,如list[0].checked、user.profile.name。- 一次提交相关字段,避免循环中频繁调用
setData。 - 不把大对象、长列表、函数或复杂实例放入
data;仅保留模板实际需要的可序列化数据。 setData后渲染异步完成;依赖新布局时使用回调或节点查询 API。
js
this.setData({ loading: false, items }, () => {
// 此时渲染层已收到本次数据
})组件的 properties 是外部输入,不应在内部直接修改;需要内部状态时复制到 data 并明确同步策略。
