React Native 入门
app 分类
- native app(原生应用)
- web app (web 应用)
- hybird app(混合应用)
Facebook发现Hybrid App存在很多缺陷和不足,于是发起开源的一套新的App开发方案RN。使用JSX语言写原生界面,js通过JSBridge调用原生API渲染UI交互通信。
优点:效率体验接近Native App,发布和开发成本低于Native App。
混合 App 里面的网页不同于普通网页,可以调用底层系统所有的 API。奥秘就在于外层容器提供了 API Bridge,充当底层 API 的中介,允许内部的网页调用底层。所谓 API Bridge 就是容器在底层接口和网页之间,建立一座桥梁,让双方通信。容器一旦接到网页的请求,就根据请求去调用底层系统的 API,然后再返回结果给网页。API Bridge 往往以 JavaScript 语言提供,方便网页调用,这时又称为 JSbridge。 --阮一峰 blog
微信本身是一个容器,开放自己的接口(JSbridge),外部开发者使用规定的语法,编写页面,容器可以动态加载这些页面。
搭建环境,官网教程
- 安装 Homebrew
- 安装 node, watchman, CocoaPods
- 安装 yarn
- 安装 Xcode
其中,最麻烦的步骤是 pod install 的过程,由于git clone github项目,导致包下载不下来,最终科学上网解决。 Homebrew 安装教程
创建项目的方式
- create-react-native-app
- 使用expo的脚手架expo-cli
设计
样式
样式写法:小驼峰
eg: background-color: '000'
改写成 backgroundColor: '000'
宽高
React Native 中的尺寸都是无单位的,表示的是与设备像素密度无关的逻辑像素点。
宽高没有单位,在样式中width: 500, height: 500
可以使用flex宽高, 百分比宽高.
组件
详情见 rn 官网,组件文档。
TouchableHighlight
只支持一个子节点,如果你希望包含多个子组件,可以用一个 View 来包装它们。
API
详情见 rn 官网,Api 文档。
调试
- 打开模拟器后 command + d, 打开菜单,选择 debug in chrome。
- 然后会打开页面 http://localhost:8081/debugger-ui/ ,这里就是调试页面,进行调试,Source 下进行断点调试。