本文对RN学习中遇到的问题做一个合集,方便自己查看。
问题来自国外开发者Sriraman写的开发接触RN一年的感触
原文地址:What we learned after using React Native for a year 文章发布时间:2016年11月11日
React-Native问题:
1.Animation API 占用了JS全部进程导致APP性能不行
官方已经逐渐将大部分动画迁移至原生。
2.频繁的react-native版本更新周期
频繁的react-native版本更新导致每次升级都要花大量的时间修复升级引起的问题。
性能问题以及解决方法
1.ListView组件在数据量大的时候内存占用过多
解决方法:
(1).[SGListView](https://github.com/sghiassy/react-native-sglistview) 考虑到内存占用的组件,但性能不行。
(2) **[react-native-tableview](https://github.com/aksonov/react-native-tableview)**
貌似只能IOS端
这个问题解决方法后续补充
2.页面(page)跳转缓慢
因为界面在跳转执行动画的同时会渲染相关的视图组件。
解决办法:可以在动画进行时加载部分主要的视图,剩余的在推入动画执行完成后渲染。
3.在对图片尺寸执行大小调节动画时,JS线程阻塞问题
Transforming the image using scale property fixed the issue for us.
3.安卓端内存占用过多闪退问题
React Native Android is based on Fresco for loading and displaying images.
在项目中安卓端尽可能使用JPG格式的图像。
总结:
1.Start by implementing everything in JS for maximum productivity.
2.If traditional React optimizations fail, surgically move the troublesome parts to the native part for better performance. But, don't overuse the bridge.
3.For animations/interactions, try to use declarative libraries like Animated whenever possible. However, some complex interactions can't be expressed declaratively, and offloaded.
4.Use JPEG images whenever possible.
5.Investing time on learning more about the React Native internals will be very helpful in making better apps.
1.尽可能用JS 即(react-native)与此相对的是原生(native)来实现想要的功能,以获得更高的效率。
2.如果说(react-native)功能优化已经尽最大可能,但仍然解决不了问题,可以尝试用原生来实现。
3.对于动画/交互,尽可能使用声明库 如Animated
4.尽可能使用JPEG图像。
5.投入时间学习React Native原理将非常有助于更好的应用程序。
`