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

  • 一、ES6语法不兼容for of语法,会产生一些不可预知的bug。
  • 二、从服务器获取到的配置文件XXX.bytes,直接根据pb文件解析便可,千万不要进行json解析,不然pb里的枚举值就会被转成字符串,致使获取不到预想的结果。
  • 三、作本地缓存的时候,react-native提供的AsyncStoreage只能存储字符串,因此存入缓存以前数据都要进行json序列化,可是当从缓存中取出数据,进行json解析,加入缓存以前的对象的一些默认(例如:boolean类型)值,都变成undefined了,会影响原有的判断逻辑,须要对数据进行逻辑判断的补充。
  • 四、在开发中确定会遇到须要获取时间戳的问题,React-native中获取的时间戳是毫秒为单位,并且后面还有几位小数,打印了几条数据观察,发现都是1位小数,毫秒到的秒的转换,须要再除以1000,因而就按4位小数进行截取,let timeStamp = timeStamp.substring(0, timeStamp.length - 4);,可是在后来的程序运行中同事发现,有的时候,后面会有没有小数的状况,结果截取到的时间戳就少了一位,结果就出错了。因而他把获取时间戳的代码修改如:let timeStamp = Math.floor(new Date().getTime() / 1000).toString();,这样获取到的就是时间戳的整数部分了,且是用秒为单位的。
  • 五、react-native中的text组件,若是不设置宽度的话,默认是父组件的宽度,显示不下才会进行换行,开发中遇到遇到两种状况:一个image & text 采用横向布局,若是不设置text的宽度的话,超过父组件的宽度,右侧的文本会有丢失的状况;一个text & image 采用横向布局,若是不设置text的宽度的话,text会默认占用父组件的所有宽度,结果右侧的image被挤到了父组件以外。
  • 六、数据埋点遇到的坑点:因为服务器和客户端不在同一个时区,服务器接收到打点数据,由于时间差的缘由,对客户端上报的一条数据进行了屡次入库,致使数据量异常。通过商量,服务器对接收到的数据进行去重,且后续时间以服务器时间为准。
  • 七、AsyncStoreage的数据存储速度有待怀疑。在性能调优的时候发现,一些方法的执行,快的是1毫秒,大部分的发放执行在40毫秒左右,到了帐号信息存储的时候,就执行了一个AsyncStorage.multiSet方法,其中是5条数据,耗时一下就变成了800毫秒左右。截图以下:

图片描述
上面这个方法的执行耗时是783毫秒,因此对于这里的信息存储,仍是有很大的提高空间的。
AsyncStoreage给咱们在开发中提供了一些数据存储的便利,可是只适合于存储少许数据,且对耗时感知不是很强的场景,对于登陆和注册这种关键性步骤,AsyncStoreage的性能还有有欠缺的。react

相关文章
相关标签/搜索