微信小程序 |
您所在的位置:网站首页 › 微信小程序更新中是什么意思 › 微信小程序 |
1. setData的使用
Page.prototype.setData(Object data, Function callback)
setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。 Object 以 key: value 的形式表示,将 this.data 中的 key 对应的值改变成 value。 其中 key 可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。
2. 注意事项 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。仅支持设置可 JSON 化的数据。单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。请不要把 data 中任何一项的 value 设为 undefined ,否则这一项将不被设置并可能遗留一些潜在问题。 3. 网络卡顿,出现数据未更新 因为setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。 可能出现的情景: Android下用户再滑动时会感觉到卡顿,操作反馈延迟严重,因为JS线程一直在编译执行渲染,未能及时将用户操作事件传递到逻辑层,逻辑层亦无法及时将操作处理结果及时传递到视图层渲染出现延时时,由于WebView的JS线程一直处于忙碌状态,逻辑层到页面层的通信耗时上升,视图层收到的数据消息时距离发出时间已经过去了几百毫秒,渲染的结果并不实时。我的解决方案:这样保证我下拉刷新调用请求函数是,data里面的页数数据初始化成功了,再调用请求获取数据函数 /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { this.setData({ page:1, CurrentPageIndex:1, },()=>{ // this.setData是异步,需要保证数据已经修改了以后再执行其他操作 if ('first' == this.data.changeTab) { this.firstLists(); } else if ('second' == this.data.changeTab) { this.secondlist() } }) //停止下拉刷新 wx.stopPullDownRefresh(); },
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |