首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解剖小程序的 setData

无处不在的 setData --- 几乎每个开发者都会用到setData,要是在复杂的页面中,写了很多的setData,然后我们会发现页面真的是延迟严重,甚至卡顿、假死。...官方在性能优化中有提到: 避免频繁的去 setData。 避免每次 setData 都传递大量新数据。 后台态页面进行 setData。 但是到底是为什么呢?...不用问就是setData了: this.setData({ key: value }) setData函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的this.data的值(同步)。...逻辑层 -> Native(setData)。 Native -> 渲染层(setData)。 在一些强交互的场景(表单、canvas等),这样的操作流程会导致用户体验卡顿。...--6.3 原生组件》 结束语 --- 总而言之,这一节内容主要是围绕 setData 展开,包括双线程的渲染机制、通信机制,setData 的出现(逻辑层通知渲染层)、工作原理(evaluateJavascript

4.4K41
您找到你想要的搜索结果了吗?
是的
没有找到

【干货】解剖小程序的 setData

无处不在的 setData ---- 几乎每个开发者都会用到setData,要是在复杂的页面中,写了很多的setData,然后我们会发现页面真的是延迟严重,甚至卡顿、假死。...官方在性能优化中有提到: 1.避免频繁的去 setData。 2.避免每次 setData 都传递大量新数据。 3.后台态页面进行 setData。 但是到底是为什么呢?...不用问就是setData了: 123 this.setData({key: value}) setData函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的this.data的值(同步)。...3.逻辑层 -> Native(setData)。 4.Native  -> 渲染层(setData)。 在一些强交互的场景(表单、canvas等),这样的操作流程会导致用户体验卡顿。...)、使用建议(setData 交互性能)、性能优化(原生组件出现)。

1.6K30

微信小程序中 setData 详解

定义: 设置数据,更改数据 作用: setData函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data的值(同步) 仔细细品这句话,会包含了很多信息 setData它是微信小程序提供的一个内置的接口...,名为setdata,如下是逻辑层 js 文件 // miniprogram/pages/setdata/setdata.js Page({ /** * 页面的初始数据 */ data...">更改data中数据 而在逻辑层 JS // miniprogram/pages/setdata/setdata.js Page({ /** * 页面的初始数据 *...数据冗余(setData操作会引起框架处理一些渲染界面相关的工作,避免将未绑定在 WXML 的变量传入setData,减少不必要的性能消耗) 后台态页面进行setData(比如退出小程序),当页面进入后台态...(用户不可见),不应该继续去进行 setData,后台态页面的渲染用户是无法感受到的,另外后台态页面去 setData 也会抢占前台页面的执行 结语 在本文中主要介绍了下setData的使用,它是用于修改挂载在

1.9K10

小程序中this.setData的使用和注意事项

前言:微信小程序中经常需要用到this.setData({})把变量值渲染到视图层,那到底什么是this.setData,如何使用?需要注意哪些?...setData 操作错误 1....频繁的去 setData 在我们分析过的一些案例里,部分小程序会非常频繁(毫秒级)的去setData,其导致了两个后果: Android 下用户在滑动时会感觉到卡顿,操作反馈延迟严重,因为 JS...每次 setData 都传递大量新数据 由setData的底层实现可知,我们的数据传输实际是一次 evaluateJavascript 脚本过程,当数据量过大时会增加脚本的编译执行时间,占用 WebView...后台态页面进行 setData 当页面进入后台态(用户不可见),不应该继续去进行setData,后台态页面的渲染用户是无法感受的,另外后台态页面去setData也会抢占前台页面的执行。

1K40

微信小程序 this.setData(微信小程序setstorage)

微信小程序setData()使用: ##Page.prototype.setData(Object data, Function callback) setData 函数用于将数据从逻辑层发送到视图层...注意: 直接修改this.data,而不调用this.setData(),是无法改变当前页面的状态的,会导致数据不一致 仅支持可以JSON化的数据 单次设置的数据不能超过1024KB,尽量避免一次设置过多的数据...** * 生命周期函数--监听页面加载 */ onLoad: function (options) { } }) 在页面中显示: 在onLoad()函数中调用setData...() onReady: function () { this.setData({ value:"调用setData()修改后的值" }) }, 再次运行:...res) {}, complete: function(res) {}, }); ####这里会出现一个问题:直接在wx:request()的success回调函数中使用this.setData

25.2K30

iKcamp出品|微信小程序|工具安装+目录说明|基于最新版1.0开发者工具初中级教程分享

、 app.wxss app.js 小程序的主入口文件,类似于我们在模块加载器时代(requirejs/seajs)常常会码一个 main.js 来作为程序的启动入口。...注意:文件名不可更改 我们可以在 app.js 里面对小程序在不同生命周期段进行处理,设置小程序里面的 全局变量(比如只请求一次公用的数据,让所有的页面都能用)。.../logs/logs' }) }, onLoad: function () { if (app.globalData.userInfo) { this.setData...Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 app.userInfoReadyCallback = res => { this.setData...getUserInfo: function(e) { console.log(e) app.globalData.userInfo = e.detail.userInfo this.setData

1.2K90

【愚公系列】2022年04月 微信小程序-获取用户信息和OPENID

文章目录 一、获取OPENID 1.获取授权码code 2.获取openid 二、自动获取用户信息 1.自动弹框用户确认 1.1 在app.js中创建该全局方法 1.2 实例化全局方法获取用户信息 2....二、自动获取用户信息 1.自动弹框用户确认 1.1 在app.js中创建该全局方法 // app.js App({ onLaunch() { // 展示本地存储能力 const logs...success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId } }) }, //app.js...var that = this app.getUserInfo(function (userInfo) { console.log(userInfo) //更新数据 that.setData...// 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { console.log(res) this.setData

1.4K20

聊聊Zookeeper技术内幕之客户端与SetData请求处理

getClientCnxnSocket(), canBeReadOnly); cnxn.start(); } 初始化过程的泳道图如下 请求处理(SetData...服务端对于SetData请求的处理,大体可以分为4大步骤,分别是请求的预处理、事务处理、事务应用和请求响应 流程逻辑大概如下所示: 预处理 I/O层接收来自客户端的请求。...对于SetData请求,因为此时已经完成了会话创建,因此按照正常的事务请求进行处理。 将请求交给ZooKeeper的PrepRequestProcessor处理器进行处理。...无论对于会话创建请求还是SetData请求,或是其他事务请求,事务处理流程都是一致的,都是由ProposalRequestProcessor处理器发起,通过Sync、Proposal和Commit三个子流程相互协作完成的

31210
领券