SmartRefreshLayout
https://www.npmjs.com/package/react-native-smartrefreshlayout
RN源码解析
https://blog.csdn.net/xiangzhihong8/article/details/84998455//
//双缓冲
https://www.jianshu.com/p/9e5aa666a8a8
react-native实现原理
https://www.jianshu.com/p/04251c28e23d
https://www.jianshu.com/p/a8a5fe46e740
react-naitive原理总结
https://blog.csdn.net/xiangzhihong8/article/details/54425807
https://www.cnblogs.com/wood-life/p/10577868.html
https://www.jianshu.com/p/038975d7f22d
RN的原生代码(Timer和用户事件)驱动JS Engine, 然后JS Engine解析执行React或者相关的JS代码,然后把计算好的结果返回给Native code. 然后, Native code 根据JS计算出来的结果驱动设备上所有能驱动的硬件
* 它负责管理UI component的生命周期,管理Virtual DOM
* 所有业务逻辑都是用javascript来实现或者衔接
* 调用原生的代码来操纵原生组件。
* Javascript本身是无绘图能力的,都是通过给原生组件发指令来完成
JavaScriptCore + ReactJS + Bridges 就成了React Native。
* JavaScriptCore负责JS代码解释执行
* ReactJS负责描述和管理VirtualDom,指挥原生组件进行绘制和更新,同时很多计算逻辑也在js里面进行。ReactJS自身是不直接绘制UI的,UI绘制是非常耗时的操作,原生组件最擅长这事情。
* Bridges用来翻译ReactJS的绘制指令给原生组件进行绘制,同时把原生组件接收到的用户事件反馈给ReactJS。
* 要在不同的平台实现不同的效果就可以通过定制Bridges来实现
React Native有三个重要的线程:
* Shadow queue. 布局引擎([yoga](https://facebook.github.io/yoga/))计算布局用的。
* Main thread. 主线程。就是操作系统的UI线程。无论是iOS还是android,一个进程都只有一个UI线程,我们常说的主线程. React Native所有UI绘制也是由同一个UI线程来维护。
* Javascript thread. javascript线程。 大家都知道javascript是单线程模型,event驱动的异步模型。React Native用了JS引擎,所以也必需有一个独立的js 线程. 所有JS和原生代码的交互都发生在这个线程里。死锁,异常也最容易发生在这个线程.