关于 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
    }
)
相关推荐
hnxaoli2 小时前
统信小程序(十三)循环键鼠操作程序
python·小程序
i查拉图斯特拉如是3 小时前
使用workbuddy 30分钟搭建微信小程序
微信小程序·小程序
IceSugarJJ3 小时前
Open-AutoGLM项目学习
语言模型·微信小程序·github
2501_916008895 小时前
Mac 上生成 AppStoreInfo.plist 文件,App Store 上架
android·macos·ios·小程序·uni-app·iphone·webview
咖啡の猫7 小时前
小程序协同工作和发布
小程序
维双云7 小时前
小程序怎么制作工具?与其盲目找开发,不如先分清自己要哪一种
小程序
qq_9109462928 小时前
校园共享电动车租赁小程序
小程序
ZC跨境爬虫8 小时前
模块化烹饪小程序开发日记 Day6:(菜谱列表接口开发与日志调试实践)
前端·javascript·css·ui·微信小程序·html
侃谈科技圈8 小时前
5G网络仿真软件哪个更高效?Ranplan两款核心产品深度解析
小程序
小羊Yveesss8 小时前
微信小程序年度费用全拆解:SaaS、开源与定制开发的3年成本实测对比
微信小程序·小程序·开源