Skip to content

数据与 setData

页面和组件的 data 是渲染层数据源。只能通过 setData 驱动视图更新;直接修改 this.data 不会更新页面。

js
Page({
  data: { user: null, items: [] },
  updateUserName(name) {
    this.setData({ 'user.name': name })
  },
})

规则

  • setData 支持路径键,如 list[0].checkeduser.profile.name
  • 一次提交相关字段,避免循环中频繁调用 setData
  • 不把大对象、长列表、函数或复杂实例放入 data;仅保留模板实际需要的可序列化数据。
  • setData 后渲染异步完成;依赖新布局时使用回调或节点查询 API。
js
this.setData({ loading: false, items }, () => {
  // 此时渲染层已收到本次数据
})

组件的 properties 是外部输入,不应在内部直接修改;需要内部状态时复制到 data 并明确同步策略。

基于 MIT 许可发布