关于 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 小时前
微信小程序游戏化学习实践:一个车标识别项目的复盘
微信小程序·我是车标王·汽车车标
2501_915909064 小时前
深入解析Mock.js:功能、应用及实战案例,提升前端开发效率
android·ios·小程序·https·uni-app·iphone·webview
于先生吖4 小时前
前后端分离体育服务项目,场馆计费+线下赛事排行小程序部署开发教程
java·小程序·uni-app
黄华SJ520it4 小时前
上门回收旧衣小程序开发全流程解析
小程序·系统开发
万岳科技系统开发4 小时前
互联网医院小程序搭建如何快速上线?完整建设方案解析
小程序·apache
kke_886 小时前
一年12个月,小程序UV的季节性波动规律
大数据·小程序·uv
维双云8 小时前
小程序店铺装修模板怎么选?从首页布局、商品展示到下单路径这样看更实际
前端·小程序
Kingexpand_com8 小时前
旅游小程序功能设计案例:产品管理、定制游、社区与营销
小程序·旅游·小程序开发·旅行·软件定制开发·上海小程序开发公司
我是伪码农10 小时前
小程序175-200
前端·javascript·小程序
河北清兮网络科技10 小时前
2026石家庄广告联盟APP开发成本明细|不同开发模式费用拆解
大数据·小程序·app·短剧app·广告联盟