最近RN在客户端app领域应用的比较多,比较广泛了,于是我们公司也在考虑加入RN模块来解决哪些频繁改动的模块,首先我们调研了一下,看看RN的各种优缺点,在调研过程中有一个链接写的很全面,各种优缺点,性能与Naive的差别等,链接如下:
http://www.jb51.cc/article/p-nlrfhmvl-qh.html
刨去过程,文章结论如下
1、开发方式
(1)代码结构: React Native更为合理,组件化程度高
(2)UI布局:Web布局灵活度 > React Native > Native
(3)UI截面图:React Native使用的是原生组件,
(4)路由/Navigation:React Native & Native更胜一筹
(5)第三方生态链:Native modules + js modules = React Native modules
2、性能 & 体验
(1)内存:Native最少;因为React Native含有框架,所以相对较高,但是后期平稳后会优于Native。
(2)cpu:React Native居中。
(3)动画:React Native动画需求基本满足。
(4)安装包体积:React Native框架打包后,811KB。相比热更新,可以忽略和考虑资源规划。
(5)Big ListView
(6)真机体验:Native >= React Native > H5/Hybrid
(1)更新能力: H5/Hybird > React Native > Native
(2)维护成本: H5/Hybird <= React Native < Native
所以,基于RN的的框架对哪些需要频繁修改的,实效性比较高的需求来说,简直是完美的解决方案!
比如广告和推广活动页面,无比适合
那么接着就是技术方面需要解决以下问题
先搭建开发环境,这个不能够成为主要问题,自己看文档搭建就好
http://reactnative.cn/docs/0.31/getting-started.html#content
1,RN 嵌入原生OC工程,当然需要混在一起编译,因为不可能全部改RN.
http://reactnative.cn/docs/0.31/integration-with-existing-apps.html#content
2,RN与原生模块通讯,RN往往需要从Native的模块里获取一些参数,比如userid什么的。
http://reactnative.cn/docs/0.31/communication-ios.html#content
3,热更新策略,要保证更新能够及时可靠,离线也能看见页面,最好还能够AB发布。
http://bbs.reactnative.cn/topic/249/react-native%E7%83%AD%E6%9B%B4%E6%96%B0js%E8%84%9A%E6%9C%AC
http://www.cnblogs.com/rayshen/p/5737293.html
4,熟悉RN API 培训语言
http://reactnative.cn/docs/0.31/communication-ios.html#content