页面的所有元素都是视图(Views)。
React Native 封装原生组件,提供基本的视图。
主要有<View>``<Text>``<Image>``<ScrollView>``<TextInput>
;
更多组件见组件文档 (opens new window)。
Platform
Platform.OS === 'ios'
Platform.Version === 25
/ IOS parseInt(Platform.Version, 10)
BigButton.ios.js
BigButton.android.js
BigButton.native.js
web端不会使用编译react基本环境
观察文件变化
IOS 开发环境
react native 的 iOS 版本需要使用 CocoaPods 来管理依赖
$ sudo gem install cocoapods
/ $ brew install cocoapods
java 开发环境(React Native 需要 Java Development Kit [JDK] 1.8)
$ brew install adoptopenjdk/openjdk/adoptopenjdk8
Android 开发环境
$ adb devices
查看有效设备$ adb reverse tcp:8081 tcp:8081
$ npx react-native init AwesomeProject
初始化一项项目$ yarn react-native run-ios
编译并运行ios
Metro
做实时打包$ node node_modules/react-native/local-cli/cli.js start
单独运行$ yarn react-native run-android
编译并运行android
http://localhost:8081/debugger-ui
调试 js 代码Command⌘ + M
/ $ adb shell input keyevent 82
唤出设备的开发菜单chrome://inspect/#devices
调试嵌入的 web$ npx react-native log-android
查看日志$ adb logcat > a.log
捕获设备日志并写入文件Command⌘ + D
唤出设备的开发菜单Develop/开发 → Simulator/模拟器 → JSContext
$ npx react-native log-ios
查看日志Debug → Open System Log...
查看日志$ npm install -g react-devtools
$ react-devtools
Inspector
,同步选择的视图节点http://localhost:8081/debugger-ui
站点的 console
域切换为 debuggerWorker
,同步日志metro-symbolicate
根据 source map 翻译生产包日志
$ npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt
$ adb logcat -d | npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map
热更新可以使你绕过 AppStore 的审核机制,直接修改已经上架的应用。
$ adb devices
查看有效设备$ adb logcat > a.log
捕获设备日志并写入文件