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的性能还有有欠缺的。
React-Native实际开发过程中的一些注意点
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 很多时候,我们开发应用系统,底层的数据库表结构都需要开发人员亲自设计,设计的合理与否,关乎着整个系统的稳定性和运行...