# BasicTo React Native
- React Native 是什么
- React Native 解决了什么问题?
- React Native 原理
- React Native 优势和不足
- React Native 适用场景
- 如何使用 React Native
# React Native 是什么?
React Native is an open source framework for building Android and iOS applications using React and the app platform’s native capabilities. With React Native, you use JavaScript to access your platform’s APIs as well as to describe the appearance and behavior of your UI using React components: bundles of reusable, nestable code.
React Native 是一个由 Facebook 于 2015 年 9 月发布的一款开源的 JavaScript 框架,它可以让开发者使用 JavaScript 和 React 来开发跨平台的移动应用。它既保留了 React 的开发效率,又同时拥有 Native 应用的良好体验,加上 Virtual DOM 跨平台的优势,实现了真正意义上的:Learn Once,Write Anywhere
# React Native 解决了什么问题
# React Native 原理
绿色的是我们应用开发的部分,我们写的代码基本上都是在这一层。 蓝色代表公用的跨平台的代码和工具引擎,一般我们不会动蓝色部分的代码。 黄色代表平台相关的 bridge 代码,做定制化的时候会添加修改代码。 红色代表系统平台的功能,另外红色上面有一个虚线,表示所有平台相关的东西都通过 bridge 隔离开来了,红色部分是独立于 React Native 的。
# React Native 优势和不足
优势
- 跨平台: 编写的代码能够同时在 Android 和 iOS 上运行。使用 React Native 的大多数功能都可以实现 95 - 100% 的共享代码
- 开发速度:基于 React 技术栈,对于前端开发工程师友好(组件,生命周期,声明式)
- 原生体验
- 热更新:热加载可以快速看到代码更改,比起原生应用的开发快速很多
不足
- 运行环境不一致:开发环境可能是 Chrome 的 V8(Chrome 内置的 JavaScript 引擎)引擎,但是在 Native 中大多数用的是 JavaScriptCore(Webkit 内置的 JavaScript 引擎)
- 初始化时间:在 React Native 首次渲染之前,你必须初始化其运行时。不幸的是,即使在高端设备上,我们的应用也需要几秒钟的时间
- 不够成熟:版本更新快,不够稳定
- 动画效率,性能是不如原生的