React Native最新教程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图片 2.2 SDK 管理器窗口 2.点击 "Install Packages". 3.配置 HAXM. 4. 使用安卓模拟器创建一个 Android 的虚拟设备 (AVD):
第 2 章 快速入门 | 18
教程
第 2 章 快速入门 | 19
序言
这篇教程旨在让你使用 React Native 快速的开发 iOS 和 Android 应用。如果你会想什么是 React Native 并 且 为什么 Facebook 构建了它,这篇 文章 解释了为什么。 我们期望你有使用 React 来写应用的经验。如果没有,你可以在 React website 学到。
可扩展性
使用 React Native 无需编写一行原生代码即可创建出一款不错的应用程序,并且 React ቤተ መጻሕፍቲ ባይዱative 可通过自定义 原 生视图和模块来进行扩展--也就是说你可以重用你已经构建的任何内容,并且可导入和使用你最喜欢的原生 库。为
第 1 章 官网首页 | 11
@end // JavaScript var React = require('react-native'); React.createClass({ render: function() { getInitialState() {
• Android SDK 生成工具版本 23.0.1 •Android 6.0 (API 23) •Android Support Repository 5. 点击 "Install Packages".
第 2 章 快速入门 | 16
图片 2.1 SDK 管理器窗口
第 2 章 快速入门 | 17
this.setState({text}); }); }, return ( <Text>{this.state.text}</Text> ); }, });
自定义的 iOS 视图可以通过子类化 RCTViewManager,实现 -(UIView *)view 方法并用 RCT_EXPORT_VIEW_PROPE RTY 宏导出属性的办法来公开。然后一个简单的 JavaScript 文件会连接这些点。
var { NativeModules, Text } = React;
var Message =
return { text: 'Goodbye World.' }; }, componentDidMount() { NativeModules.MyCustomModule.processString(this.state.text, (text) => {
第 1 章 官网首页 | 10
t,window.requestAnimationFrame 及 navigator.geolocation。我们正在扩大可用的 API,并致力于为开源社 区做 出贡献。
var React = require('react-native'); var { Text } = React; var GeoInfo = React.createClass({ getInitialState: function() { return { position: 'unknown' }; }, componentDidMount: function() { navigator.geolocation.getCurrentPosition( (position) => this.setState({position}), (error) => console.error(error) ); }, render: function() { return ( <Text> Position: {JSON.stringify(this.state.position)} </Text> ); }, });
入门
第 2 章 快速入门 | 13
要求
1.OS X - 当前仅支持 OS X 2.推荐使用 Homebrew 的方式来安装 nvm,watchman 和 flow。 3. 安装 Node.js 4.0 或者更新的版本。
• 使用 Homebrew 来安装 nvm 或者参考 它的安装指南。接着运行
nvm install node && nvm alias defaul
安装
React Native 需要一些在 开始 React Native 中阐明的基本的安装。
在完成了这些依赖项的安装之后,这里有两条可以为一个 React Native 项目完全准备好的命令。
1. npm install -g react-native-cli
react-native-cli 是完成剩余安装的命令行工具。它是通过 npm 安装的。这将会在你的终端里面安装 t-native 这个命令行,你只需要做一次即可。
reac
2. react-native init AwesomeProject
这一条命令获取 React Native 的源代码和依赖包,然后在
AwesomeProject/iOS/AwesomeProject.xcodeproj
创建一个新的 Xcode 项目,并且在 AwesomeProject/android/app 下面创建一个 gradle 项目。
我们建议定期运行 brew update && brew upgrade 来使您的应用程序保持最新状态。
安装 iOS
我们需要 Xcode 6.3 或者更高的版本。 您可以在 App 应用商店里面安装它。
第 2 章 快速入门 | 14
• 在 Xcode 中打开 ios/AwesomeProject.xcodeproj 并且点击运行。 • 在选定的文本编辑器中打开 index.ios.js 并且编辑代码。 • 点击 iOS 模拟器中的 ?-R 来重新加载应用程序并且观察发生的变化! 运行 Android 应用程序: • $ react-native run-android • 在选定的文本编辑器中打开 index.android.js 并且编辑代码。 • 按下菜单按钮 (默认情况下是 F2,或在 Genymotion 中点击 ? M),然后选择 * Reload JS * 看看发生了 什么 变化! •在一个终端中运行 adb logcat *:S ReactNative:V ReactNativeJS:V 来查看您的应用程序日志。 祝贺你!你已经成功运行并修改了你的第一个 React Native 应用程序。 _如果您在开始的时候遇到任何问题,请参阅 故障诊断页面
第 1 章 官网首页 | 9
弹性框和样式
布局视图应该是简单的,所以我们将 Web 平台上的弹性框模块引入了 React Native。弹性框可用来搭建最常用 的 UI 布局,比如代用边缘和填充的堆叠和嵌入。React Native 还支持常见的 Web 样式,比如 fontWeight 和 StyleSheet 抽象,它们提供了一种优化机制来宣称你所有的样式和布局在组件中的应用是正确的,且组件把它们 应 用到了内网中。
伪造数据
在我们书写代码来获取真正的 Rotten Tomatoes 数据之前,我们可以伪造一些数据开始使用 React Native。在 Facebook 我们经常会在 JS 文件的头部申明常量,就在 requires 下面,但是你想增加什么数据就增加什么数 据。 在 index.ios.js 或者 index.android.js 里面:
让安卓支持现有的 React Native 项目
如果您现在已经拥有一个(iOS) React Native 项目并且想让安卓也支持它, 那么您需要在您现有的项目目录中执 行 以下命令: 1.将您 package.json 文件中的 react-native 目录更新到最新的版本 2. $ npm install 3. $ react-native android
// Objective-C #import "RCTViewManager.h" @interface MyCustomViewManager : RCTViewManager @end @implementation MyCustomViewManager - (UIView *)view {
快速入门
安装和配置 SDK
1. 安装最新的 JDK. 2. 使用 brew install android-sdk 来安装安卓 SDK。 3. 将它添加到 ~/.bashrc , ~/.zshrc 或者任何其他您的 shell 所使用的路径: export ANDROID_HOME=/us
r/local/opt/android-sdk 4. 启动一个新的 shell 并且运行 android ;在出现窗口中请检查:
t node , 它可以让您安装最新版本的 Node.js 并设置您的终端,所以你可以通过键入
node 来运行
它。使用 Nvm 可以让您安装多个版本的 Node.js 并且在它们之间轻松切换。
• npm 的更新之处。
4. brew 安装 watchman 。我们推荐您安装 watchman, 否则您可能在点击一个节点文件的时候出现错误。 5. brew 安装 flow 。如果您想使用 flow.
var React = require('react-native'); var { Image, StyleSheet, Text, View } = React; var ReactNative = React.createClass({ render: function() { return ( <View style={styles.row}> <Image source={{uri: ''}} style={styles.image} /> <View style={styles.text}> <Text style={styles.title}> React Native </Text> <Text style={styles.subtitle}> Build high quality mobile apps using React </Text> </View> </View> ); }, }); var styles = StyleSheet.create({ row: { flexDirection: 'row', margin: 40 },
hello world 应用。在 iOS 上面你可以编辑 index.ios.js 来给这个应用做一些改变,然后在模拟器里面按住
?+R 来看发生的改变。在 Android 上面可以编辑
index.android.js 来给你的应用做一些改变,并且按住震动菜
单上面的 Reload JS 来看发生的改变。
第 2 章 快速入门 | 20
在这篇教程里面我们会开发一个简单版本的电影应用,该应用可以获取电影院里面的 25 部电影,并且将它们显 示在 ListView 里面。
Hello World
react-native init 将会生成和你的工程名字一样的应用,在这个例子中就是 AwesomeProject。这是一个简单的
安装 Android 运行环境
第 2 章 快速入门 | 15
本指南描述了在安卓模拟器上运行 React Native 安卓应用程序所需要的开发环境的基本安装步骤。在这里我们 不讨 论诸如 IDE 的开发工具配置。 这些指南只包含了从头开始安装的过程。如果你恰好有一些旧的、 过时的 Android SDK 版本,请务必把所需的 包更 新至下面提到的版本并安装所有缺少的部分。
React Native最新教程
第 1 章 官网首页 | 8
图片 1.1 chrome-breakpoint
触摸处理
iOS 有一个非常强大的系统称为 Responder Chain,可以用来响应复杂视图层级中的事件,但是在 Web 中并没有 类 似功能的工具。React Native 可实现类似的响应系统并提供高水平的组件,比如 TouchableHighlight,无需 额外 配置即可与滚动视图和其他元素适度整合。 var React = require('react-native');
第 2 章 快速入门 | 18
教程
第 2 章 快速入门 | 19
序言
这篇教程旨在让你使用 React Native 快速的开发 iOS 和 Android 应用。如果你会想什么是 React Native 并 且 为什么 Facebook 构建了它,这篇 文章 解释了为什么。 我们期望你有使用 React 来写应用的经验。如果没有,你可以在 React website 学到。
可扩展性
使用 React Native 无需编写一行原生代码即可创建出一款不错的应用程序,并且 React ቤተ መጻሕፍቲ ባይዱative 可通过自定义 原 生视图和模块来进行扩展--也就是说你可以重用你已经构建的任何内容,并且可导入和使用你最喜欢的原生 库。为
第 1 章 官网首页 | 11
@end // JavaScript var React = require('react-native'); React.createClass({ render: function() { getInitialState() {
• Android SDK 生成工具版本 23.0.1 •Android 6.0 (API 23) •Android Support Repository 5. 点击 "Install Packages".
第 2 章 快速入门 | 16
图片 2.1 SDK 管理器窗口
第 2 章 快速入门 | 17
this.setState({text}); }); }, return ( <Text>{this.state.text}</Text> ); }, });
自定义的 iOS 视图可以通过子类化 RCTViewManager,实现 -(UIView *)view 方法并用 RCT_EXPORT_VIEW_PROPE RTY 宏导出属性的办法来公开。然后一个简单的 JavaScript 文件会连接这些点。
var { NativeModules, Text } = React;
var Message =
return { text: 'Goodbye World.' }; }, componentDidMount() { NativeModules.MyCustomModule.processString(this.state.text, (text) => {
第 1 章 官网首页 | 10
t,window.requestAnimationFrame 及 navigator.geolocation。我们正在扩大可用的 API,并致力于为开源社 区做 出贡献。
var React = require('react-native'); var { Text } = React; var GeoInfo = React.createClass({ getInitialState: function() { return { position: 'unknown' }; }, componentDidMount: function() { navigator.geolocation.getCurrentPosition( (position) => this.setState({position}), (error) => console.error(error) ); }, render: function() { return ( <Text> Position: {JSON.stringify(this.state.position)} </Text> ); }, });
入门
第 2 章 快速入门 | 13
要求
1.OS X - 当前仅支持 OS X 2.推荐使用 Homebrew 的方式来安装 nvm,watchman 和 flow。 3. 安装 Node.js 4.0 或者更新的版本。
• 使用 Homebrew 来安装 nvm 或者参考 它的安装指南。接着运行
nvm install node && nvm alias defaul
安装
React Native 需要一些在 开始 React Native 中阐明的基本的安装。
在完成了这些依赖项的安装之后,这里有两条可以为一个 React Native 项目完全准备好的命令。
1. npm install -g react-native-cli
react-native-cli 是完成剩余安装的命令行工具。它是通过 npm 安装的。这将会在你的终端里面安装 t-native 这个命令行,你只需要做一次即可。
reac
2. react-native init AwesomeProject
这一条命令获取 React Native 的源代码和依赖包,然后在
AwesomeProject/iOS/AwesomeProject.xcodeproj
创建一个新的 Xcode 项目,并且在 AwesomeProject/android/app 下面创建一个 gradle 项目。
我们建议定期运行 brew update && brew upgrade 来使您的应用程序保持最新状态。
安装 iOS
我们需要 Xcode 6.3 或者更高的版本。 您可以在 App 应用商店里面安装它。
第 2 章 快速入门 | 14
• 在 Xcode 中打开 ios/AwesomeProject.xcodeproj 并且点击运行。 • 在选定的文本编辑器中打开 index.ios.js 并且编辑代码。 • 点击 iOS 模拟器中的 ?-R 来重新加载应用程序并且观察发生的变化! 运行 Android 应用程序: • $ react-native run-android • 在选定的文本编辑器中打开 index.android.js 并且编辑代码。 • 按下菜单按钮 (默认情况下是 F2,或在 Genymotion 中点击 ? M),然后选择 * Reload JS * 看看发生了 什么 变化! •在一个终端中运行 adb logcat *:S ReactNative:V ReactNativeJS:V 来查看您的应用程序日志。 祝贺你!你已经成功运行并修改了你的第一个 React Native 应用程序。 _如果您在开始的时候遇到任何问题,请参阅 故障诊断页面
第 1 章 官网首页 | 9
弹性框和样式
布局视图应该是简单的,所以我们将 Web 平台上的弹性框模块引入了 React Native。弹性框可用来搭建最常用 的 UI 布局,比如代用边缘和填充的堆叠和嵌入。React Native 还支持常见的 Web 样式,比如 fontWeight 和 StyleSheet 抽象,它们提供了一种优化机制来宣称你所有的样式和布局在组件中的应用是正确的,且组件把它们 应 用到了内网中。
伪造数据
在我们书写代码来获取真正的 Rotten Tomatoes 数据之前,我们可以伪造一些数据开始使用 React Native。在 Facebook 我们经常会在 JS 文件的头部申明常量,就在 requires 下面,但是你想增加什么数据就增加什么数 据。 在 index.ios.js 或者 index.android.js 里面:
让安卓支持现有的 React Native 项目
如果您现在已经拥有一个(iOS) React Native 项目并且想让安卓也支持它, 那么您需要在您现有的项目目录中执 行 以下命令: 1.将您 package.json 文件中的 react-native 目录更新到最新的版本 2. $ npm install 3. $ react-native android
// Objective-C #import "RCTViewManager.h" @interface MyCustomViewManager : RCTViewManager @end @implementation MyCustomViewManager - (UIView *)view {
快速入门
安装和配置 SDK
1. 安装最新的 JDK. 2. 使用 brew install android-sdk 来安装安卓 SDK。 3. 将它添加到 ~/.bashrc , ~/.zshrc 或者任何其他您的 shell 所使用的路径: export ANDROID_HOME=/us
r/local/opt/android-sdk 4. 启动一个新的 shell 并且运行 android ;在出现窗口中请检查:
t node , 它可以让您安装最新版本的 Node.js 并设置您的终端,所以你可以通过键入
node 来运行
它。使用 Nvm 可以让您安装多个版本的 Node.js 并且在它们之间轻松切换。
• npm 的更新之处。
4. brew 安装 watchman 。我们推荐您安装 watchman, 否则您可能在点击一个节点文件的时候出现错误。 5. brew 安装 flow 。如果您想使用 flow.
var React = require('react-native'); var { Image, StyleSheet, Text, View } = React; var ReactNative = React.createClass({ render: function() { return ( <View style={styles.row}> <Image source={{uri: ''}} style={styles.image} /> <View style={styles.text}> <Text style={styles.title}> React Native </Text> <Text style={styles.subtitle}> Build high quality mobile apps using React </Text> </View> </View> ); }, }); var styles = StyleSheet.create({ row: { flexDirection: 'row', margin: 40 },
hello world 应用。在 iOS 上面你可以编辑 index.ios.js 来给这个应用做一些改变,然后在模拟器里面按住
?+R 来看发生的改变。在 Android 上面可以编辑
index.android.js 来给你的应用做一些改变,并且按住震动菜
单上面的 Reload JS 来看发生的改变。
第 2 章 快速入门 | 20
在这篇教程里面我们会开发一个简单版本的电影应用,该应用可以获取电影院里面的 25 部电影,并且将它们显 示在 ListView 里面。
Hello World
react-native init 将会生成和你的工程名字一样的应用,在这个例子中就是 AwesomeProject。这是一个简单的
安装 Android 运行环境
第 2 章 快速入门 | 15
本指南描述了在安卓模拟器上运行 React Native 安卓应用程序所需要的开发环境的基本安装步骤。在这里我们 不讨 论诸如 IDE 的开发工具配置。 这些指南只包含了从头开始安装的过程。如果你恰好有一些旧的、 过时的 Android SDK 版本,请务必把所需的 包更 新至下面提到的版本并安装所有缺少的部分。
React Native最新教程
第 1 章 官网首页 | 8
图片 1.1 chrome-breakpoint
触摸处理
iOS 有一个非常强大的系统称为 Responder Chain,可以用来响应复杂视图层级中的事件,但是在 Web 中并没有 类 似功能的工具。React Native 可实现类似的响应系统并提供高水平的组件,比如 TouchableHighlight,无需 额外 配置即可与滚动视图和其他元素适度整合。 var React = require('react-native');