关于 setData 同步异步的问题

小程序官方文档中的回答解释:

所以大概意思就是:

1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子:

javascript 复制代码
const a = 1
this.setData({
      b: a  ? a : '',
})
console.log(that.data.b)  // 1
  1. setData在视图层的操作是异步,因此页面渲染可能并不会立即发生。

其实从逻辑层发送到视图层的过程中相比直接在逻辑层内操作会花费更多时间,当然也存在有更多不确定,为了保证用户体验与以及减少系统开销,就将后边的操作设置为了异步。

我们有时候有些代码需要在确定 setData 引起的页面渲染完成之后执行,也可以执行渲染完成之后的回调函数,例子如下:

javascript 复制代码
this.setData({
        "a": "123"
    },
    function() {
        console.log(this.data.a)  //123
    }
)
相关推荐
一份执念3 小时前
uni-app 小程序分包限制处理与主包体积优化实战
前端·微信小程序
一份执念3 小时前
ECharts 安装与使用完全指南:从全量引入到小程序分包优化
微信小程序·echarts
skiyee1 天前
🔥UniApp 仅需 5 行代码!实现所有页面中控制应用主题变化
前端·微信小程序
Jinkey3 天前
要用户手机号真的是为了打骚扰电话吗?浅谈微信生态会员账号体系与资产合并
后端·微信·微信小程序
用户4324281061144 天前
微信小程序从0到1接入微信支付的完整攻略
微信小程序
spmcor6 天前
微信小程序 setStorageSync 踩坑实录:别让"顺手一存"变成"隐形炸弹"
微信小程序
用户4324281061146 天前
小程序埋点设计规范:如何设计可扩展的数据采集体系
微信小程序
m0_526119407 天前
iconfont我修改好颜色,但是在小程序项目是黑色的
小程序
2601_956743687 天前
2026 上海小程序开发甄选:源码、云函数、跨端兼容技术评判
小程序·开发经验·上海
IT_张三7 天前
CSDN-项目分享-暑期备考小程序
小程序