【微信小程序】页面加载后获取数据如何更新页面数据渲染

2019-11-06  本文已影响0人  代码界小菜鸡

有一次在写微信小程序的时候,当时用的是列表渲染数据。js获取到数据后,setData无法自动更新数据。搞得我也是焦头烂额的。
后来看了看setdata的官方文档

setData 是小程序开发中使用最频繁的接口,也是最容易引发性能问题的接口。

工作原理

小程序的视图层目前使用 WebView 作为渲染载体,而逻辑层是由独立的 JavascriptCore 作为运行环境。在架构上,WebView 和 JavascriptCore 都是独立的模块,并不具备数据直接共享的通道。当前,视图层和逻辑层的数据传输,实际上通过两边提供的 evaluateJavascript 所实现。即用户传输的数据,需要将其转换为字符串形式传递,同时把转换后的数据内容拼接成一份 JS 脚本,再通过执行 JS 脚本的形式传递到两边独立环境。
而 evaluateJavascript 的执行会受很多方面的影响,数据到达视图层并不是实时的。

当时的代码是这样的

aaa:function(){
    wx.request({
        url:url,
        method:"POST",
        data:{
            .....
        },
        success:function(res){
            this.setData({
                .....
            })
        }
    })
}

这样不行
然后我就这样试了一下

aaa:function(){
    var that = this
    wx.request({
        url:url,
        method:"POST",
        data:{
            .....
        },
        success:function(res){
            that.setData({
                .....
            })
        }
    })
}

居然成功了。

然后我再网上查了一下。说是需要备份一下this,也就是向代码中的

var that = this

具体问题我也不太太明白,等我明白了在此更新

上一篇下一篇

猜你喜欢

热点阅读