React Native性能优化:预加载和缓存View

React Native性能优化:预加载和缓存View,第1张

参考 比如我们做IM的时候,从会话列表进入聊天窗口,经常会有点激氏卡顿感觉,因为聊天对话界面的结构相对比较复杂。如果每次进去都需要重新构建渲染,肯定无法在16ms内完成。解决方法就是准备一个聊天对话界面的样板,在app启动的时候将它预先加载让铅衡。当需要渲染的时候,只需要将修改对应的值就可以,退去时不要去销毁它,直接cache下来留给下坦做次使用。

具体在react native上怎么实现,这需要定制自己的navigator,因为react native提供的navigator没有这种功能。具体原理就是在navigator的render函数里一直保留需要预先加载和缓存的view,当不需要显示的时候将它隐藏起来。同时需要缓冲的view一定要有初始样板。

首先使用reactnative编写一个简单的应用,在碰到问题的时候,肯定需要对代码进行调试。目前reactnative支持在Chrome浏览器内罩告进行调枯瞎试。需要选择Scheme->Run的选项为Debug,否则模拟器中不会出现调试选项。将应用设置为在模拟物败明器中运行,运行后,按...

react-native-storage 是封装好的数据存储组件,安装方法见: https://github.com/sunnylqm/react-native-storage/blob/master/README-CHN.md

首先导入组件 import Storage from 'react-native-storage'

创建一个全局的 Storage :

注意 storage.sync 的设置放在了创建方法的外面,是因为 RNAsyncStorage_asyn 文件中使用了 storage ,(如果放在创建方法里面, RNAsyncStorage_asyn 中的 storage 将因为尚未导出 storage 而出现错误)

这里解释下 syncInBackground -----为ture的时候:如果数据过期念扮悉,在调用 sync 方法的同时先返回已经过期的数据,但 sync 方法结束后不会调用 promise 返回新的数缺皮据。为false的时候,会等仔乎待等待 sync 方法 promise 返回最新数据

这里的 http://localhost:8010/birds/storage 是一个本地连接,将返回一个json数据,数据格式为 {"name":"B","age":18,"tags":["geek1","nerd1","otaku1"]}

上面设置了过期时间为6秒,6秒之后数据过期,将会自动调用RNAsyncStorage_asyn文件中的方法,然后返回一个新的数据为请求过来的json,并保存起来


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12167307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存