资讯专栏INFORMATION COLUMN

React-Native实际开发过程中的一些注意点

cnTomato / 2098人阅读

摘要:语法不兼容语法,会产生一些不可预知的。经过商量,服务器对接收到的数据进行去重,且后续时间以服务器时间为准。的数据存储速度有待怀疑。

1、ES6语法不兼容for of语法,会产生一些不可预知的bug。

2、从服务器获取到的配置文件XXX.bytes,直接根据pb文件解析即可,千万不要进行json解析,否则pb里的枚举值就会被转成字符串,导致获取不到预想的结果。

3、做本地缓存的时候,react-native提供的AsyncStoreage只能存储字符串,所以存入缓存之前数据都要进行json序列化,但是当从缓存中取出数据,进行json解析,加入缓存之前的对象的一些默认(例如:boolean类型)值,都变成undefined了,会影响原有的判断逻辑,需要对数据进行逻辑判断的补充。

4、在开发中肯定会遇到需要获取时间戳的问题,React-native中获取的时间戳是毫秒为单位,而且后面还有几位小数,打印了几条数据观察,发现都是1位小数,毫秒到的秒的转换,需要再除以1000,于是就按4位小数进行截取,let timeStamp = timeStamp.substring(0, timeStamp.length - 4);,但是在后来的程序运行中同事发现,有的时候,后面会有没有小数的情况,结果截取到的时间戳就少了一位,结果就出错了。于是他把获取时间戳的代码修改如:let timeStamp = Math.floor(new Date().getTime() / 1000).toString();,这样获取到的就是时间戳的整数部分了,且是用秒为单位的。

5、react-native中的text组件,如果不设置宽度的话,默认是父组件的宽度,显示不下才会进行换行,开发中遇到遇到两种情况:一个image & text 采用横向布局,如果不设置text的宽度的话,超过父组件的宽度,右侧的文本会有丢失的情况;一个text & image 采用横向布局,如果不设置text的宽度的话,text会默认占用父组件的全部宽度,结果右侧的image被挤到了父组件之外。

6、数据埋点遇到的坑点:由于服务器和客户端不在同一个时区,服务器接收到打点数据,因为时间差的原因,对客户端上报的一条数据进行了多次入库,导致数据量异常。经过商量,服务器对接收到的数据进行去重,且后续时间以服务器时间为准。

7、AsyncStoreage的数据存储速度有待怀疑。在性能调优的时候发现,一些方法的执行,快的是1毫秒,大部分的发放执行在40毫秒左右,到了账号信息存储的时候,就执行了一个AsyncStorage.multiSet方法,其中是5条数据,耗时一下就变成了800毫秒左右。截图如下:


上面这个方法的执行耗时是783毫秒,所以对于这里的信息存储,还是有很大的提升空间的。
AsyncStoreage给我们在开发中提供了一些数据存储的便利,但是只适合于存储少量数据,且对耗时感知不是很强的场景,对于登录和注册这种关键性步骤,AsyncStoreage的性能还有有欠缺的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100327.html

相关文章

  • 一步一步开发安卓下的react-native应用系列之第一个RN应用

    摘要:闭上眼睛,心中默念一百遍遍马力马力轰,再睁开眼,如果你是安卓及以上系统,你就能在你手机上看到你第一个应用了图,如果是以下,嘿嘿,一个血红血红的界面,不过没关系,我们来纠正它。         前期准备工作已经完成,接下来将正式进入开发了,请深呼吸下,呵呵。我们首先写个Hello World工程来练练手。        在命令行上点右键,选择以管理员身份运行。建议每次运行命令行的时候都用...

    Donald 评论0 收藏0
  • 多React Native项目时依赖管理的最佳实践

    摘要:此时会把当前路径作为一个本地,在全局路径下创建一个软链接。所有依赖于全局路径下的都必须是一个版本的,并没有提供多版本号依赖的解决方法。因此,还是建议选择一个常用的版本安装在全局路径,个别需求其他版本号的的项目,使用来配置局部依赖。 在实际开发过程中,经常需要同时运行和修改多个React Native工程,比如运行github上的开源项目以观察某种控件的实际效果。那么此时,各项目下的初始...

    AbnerMing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<