一个三年以上老项目加入React Native 模块的过程
来源:互联网 发布:php视频网站 编辑:程序博客网 时间:2024/05/18 01:57
最近RN在客户端app领域应用的比较多,比较广泛了,于是我们公司也在考虑加入RN模块来解决哪些频繁改动的模块,首先我们调研了一下,看看RN的各种优缺点,在调研过程中有一个链接写的很全面,各种优缺点,性能与Naive的差别等,链接如下:
http://blog.csdn.net/x32sky/article/details/59057649
刨去过程,文章结论如下
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
3、更新 & 维护
(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
- 一个三年以上老项目加入React Native 模块的过程
- React Native 导出项目全局共用组件的模块
- React Native实现一个自定义模块
- 一个上架了的React Native项目实战总结
- 一个上架了的React Native项目实战总结
- 一个上架了的React Native项目实战总结
- React-Native的项目总结
- 完整的react-native项目
- Native项目迁入React-Native过程中遇到的坑(0.4x版本)
- React Native 项目(One 【一个】客户端)
- 通过WebStorm新建一个React Native项目
- React-Native导出模块的认识
- React Native原生模块的基本使用
- [React Native]一个“三端”开发者眼中的React Native
- 三年开发两年前端,一个CSDN的老新人
- 创建React Native 离线 APP的过程
- React native安装过程遇到的问题
- react native安装过程遇到的问题
- 树链剖分
- CRichEditCtrl使用CHARFORMAT这个结构设置字体,颜色,字号
- Linux下用GDB调试多线程程序
- gemotion安装apk出现的INSTALL_FAILED_NO_MATCHING_ABIS错误解决方法
- mac 彻底卸载 node
- 一个三年以上老项目加入React Native 模块的过程
- 腾讯云服务器部署JavaWeb项目
- 03.Java 关键字
- 20170303找女朋友之路思考总结
- POJ 3723 Conscription【招募士兵】
- 从零移植uboot 2017 到nuc970(第一天)
- 九度OJ-1002:Grading
- 使用Java的BlockingQueue实现生产者-消费者
- 广度优先遍历