React Native实践总结一
一、React的世界观
1、通过改变state来改变视图
视图不用考虑如何改变自己,把state画出来即可。
2、变量不可变
通过创建一个新的state来更改state,使得变更可追踪,不容易因为其他部分修改state导致不可预测的错误
3、结构与样式分离
参考了CSS的做法,RN的style机制使得代码更清晰更易维护
4、采用消息替代调用
组件直接不直接调用,使得组件间松耦合,便于维护和团队开发
二、为什么使用React Native?
1、热更新
开始只是为了能够热更新,并且性能还能接受
2、模块化
更好重用和扩展
3、跨平台
业务逻辑可以重用,不同平台的组件各自实现
4、统一的布局方式
三、设计与分工
1、组件树设计
公共组件
React
2、状态树设计
公共状态
redux
3、路由设计
Tabview+Navigator+Model
react-native-router-flux
4、分工
按组件划分
Git Flow
四、RN与原生双向调用
植入友盟监控
原生读远程配置
五、页面跳转
1、Tabview
2、Navigator
3、Modal
4、ExNavigator+Redux
https://github.com/aksonov/react-native-router-flux
六、多屏适配
1、弹性布局能满足正常开发需求
满足网格布局标准就满足正常开发需求
2、弹性传递或上一层有大小
3、图片尺寸
PixelRatio.getPixelSizeForLayoutSize
4、弹性断层
Dimensions.get('window').height
七、Redux
1、业务逻辑与界面分离
更适合跨平台项目
2、State变化可预测
便于调试,重现bug
3、只有一个状态树
随时还原案发现场
4、减少重画次数
用setState会产生重画,而redux合并状态再重画
八、热更新
发布时内置RN文件
启动时检查
有更新则自动下载更新,并提示用户安装更新
更新后的RN替换本地文件
https://github.com/Microsoft/react-native-code-push
九、调试与调优
1、Chrome调试
2、React-addons-perf
Perf.start() and Perf.stop()
Perf.getLastMeasurements()
3、Console.log
更多精彩内容,请加入我们的开发实战经验交流QQ群:163520523,会有意想不到的惊喜等着您!
———————————————— 
React Native实践总结一的更多相关文章
- 携程React Native实践
React Native(下文简称 RN)开源已经一年多时间,国内各大互联网公司都在使用,携程也在今年 5 月份投入资源开始引入,并推广给多个业务团队使用,本文将会分享我们遇到的一些问题以及我们的优化 ...
- React Native实践之携程Moles框架
编者:本文来自携程框架研发部高级经理魏晓军在第二期[携程技术微分享]上的分享,以下为整理后的文字实录.视频回放可点击这里.关注携程技术中心微信公号ctriptech,可获知更多微分享课程信息. 因为支 ...
- 慢牛系列三:React Native实践
上次发布了我的慢牛股票APP之后,有园友反馈有点卡,这个APP是基于Sencha Touch + Cordova开发的,Sencha本身是一个比较重的框架,在Chrome里运行性能还是不错的,但是在A ...
- 基于React Native的移动平台研发实践分享
转载:http://blog.csdn.net/haozhenming/article/details/72772787 本文目录: 一.React Native 已经成为了移动前端技术的趋势 二.基 ...
- 慢牛系列四:好玩的React Native
在上次随笔(系列三)中,我试着用RN实现了一个Demo,感觉很不错,当时遇到的问题这篇文章里基本都解决了,比如导航动画问题,这篇文章里主要介绍RN的动画,学会动画以后,各种小创意都可以实现了^^ 下面 ...
- react native 入门实践
上周末开始接触react native,版本为0.37,边学边看写了个demo,语法使用es6/7和jsx.准备分享一下这个过程.之前没有native开发和react的使用经验,不对之处烦请指出.希望 ...
- 腾讯优测优分享 | 探索react native首屏渲染最佳实践
腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~ 此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app ...
- 探索react native首屏渲染最佳实践
文 / 腾讯 龚麒 0.前言 react native给了我们使用javascript开发原生app的能力,在使用react native完成兴趣部落安卓端发现tab改造后,我们开始对由react n ...
- 基于React Native的58 APP开发实践
React Native在iOS界早就炒的火热了,随着2015年底Android端推出后,一套代码能运行于双平台上,真正拥有了Hybrid框架的所有优势.再加上Native的优秀性能,让越来越多的公司 ...
随机推荐
- C++11的新特性:右值引用
先看代码 #include "pch.h" #include <iostream> #include <string> using namespace st ...
- ForkJoinPool详解
本文的主要目的是介绍 ForkJoinPool 的适用场景,实现原理,以及示例代码. 说在前面可以说是说明,也可以说下面是结论: ForkJoinPool 不是为了替代 ExecutorService ...
- 去除重复嵌套的html标签函数
去除重复嵌套的html标签 function strip_multi_tags($str, $tag = 'div'){ preg_match_all('/<'.$tag.'>|<\ ...
- CSS3 ::before和::after伪元素的实际应用
实例 1.清除浮动 通常我们清除清除浮动的方式就是在浮动元素后面添加一个空的Div标签,然后在设置它的清除浮动要是,使用after伪元素,我们就不需要添加无意义的div标签在html中了,下面的例子就 ...
- export default{} 和 new Vue()都是什么意思
在生成.导出.导入.使用 Vue 组件的时候,有些新手就会常常被位于不同文件的 new Vue() 和 export default{} 搞得晕头转向.它们含义到底是什么,又有什么异同呢? 首先,Vu ...
- sonar-runner命令模式运行sonar
适用环境:该种配置的模式适用于本地调试模式 前提条件:在工程路径下创建sonar-project.properties文件 该客户端的路径在系统配置文件中进行了定义 alias sonar-runne ...
- B/S大文件断点续传
一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输. ...
- Linux下安装Harbor 1.8.0 仓库的安装和使用(亲测)
根据Harbor官方描述: Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distri ...
- Cluster基础(五):配置tracker、配置storage、文件测试及web访问
一.配置tracker 目标: FastDFS是一个分布式文件系统,主要的服务器角色有Tracker和Storage.本例安装一台Tracker,实现以下功能: 接受客户端的访问 检索存储节点,为客户 ...
- 【HDOJ6656】Kejin Player(期望DP)
题意:玩一个共有n级的游戏,i级出发每次可以花a[i]的代价,有p[i]的几率变成i+1级,有1-p[i]的几率变成x[i]级,x[i]<=i 多次询问,每次询问从l级升到r级的期望总代价 n, ...