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

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

作者: 代码界小菜鸡 | 来源:发表于2019-11-06 12:25 被阅读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
    

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/eukubctx.html