RN快速上手

转自骆神创建、陈神修改,仅供学习

1、开发环境的快速搭建

1.1 Homebrew的安装

Homebrew, Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件。使用以下命令安装:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

注:在Max OS X 10.11(El Capitan)版本中,homebrew在安装软件时可能会碰到/usr/local目录不可写的权限问题。

可以使用下面的命令修复: 

sudo chown -R `whoami` /usr/local

1.2 Node

使用Homebrew来安装Node.js.

React Native目前需要NodeJS 5.0或更高版本。本文发布时Homebrew默认安装的是最新版本,一般都满足要求。

brew install node 

安装完node后建议设置npm镜像以加速后面的过程(或使用科学上网工具)。

注意:不要使用cnpm!cnpm安装的模块路径比较奇怪,packager不能正常识别!

npm config set registry https://registry.npm.taobao.org --global npm config set disturl https://npm.taobao.org/dist --global


1.3 Yarn、React Native的命令行工具(react-native-cli)


Yarn是Facebook提供的替代npm的工具,可以加速node模块的下载。React Native的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。


npm install -g yarn react-native-cli


安装完yarn后同理也要设置镜像源:


yarn config set registry https://registry.npm.taobao.org --global yarn config set disturl https://npm.taobao.org/dist --global


如果你看到EACCES: permission denied这样的权限报错,那么请参照上文的homebrew译注,修复/usr/local目录的所有权: 


sudo chown -R `whoami` /usr/local


安装完yarn之后就可以用yarn代替npm了,例如用yarn代替npm install命令,用yarn add 某第三方库名代替npm install --save 某第三方库名

1.4 Xcode/Android Studio

iOS开发安装Xcode,安卓开发安装Android Studio。

React Native目前需要Xcode 8.0 或更高版本。你可以通过App Store或是到Apple开发者官网上下载。这一步骤会同时安装Xcode IDE和Xcode的命令行工具。

虽然一般来说命令行工具都是默认安装了,但你最好还是启动Xcode,并在Xcode | Preferences | Locations菜单中检查一下是否装有某个版本的Command Line Tools。Xcode的命令行工具中也包含一些必须的工具,比如git等。


1.5 CocoaPods(安卓跳过此步)

在安装CocoaPods之前,首先要在本地安装好Ruby环境。

假如你在本地已经安装好Ruby环境,那么使用以下命令下载和安装CocoaPods:

sudo gem install cocoapods

1.6 测试安装

iOS使用以下命令测试安装成功与否:

react-native init AwesomeProject
cd AwesomeProject
react-native run-ios

提示:如果run-ios无法正常运行,请使用Xcode运行来查看具体错误(run-ios的报错没有任何具体信息)。

安卓使用以下命令测试安装成功与否:

react-native init AwesomeProject
cd AwesomeProject
react-native run-android

如果你在设备上看到了红屏报错,请参阅在设备上运行。


2、获取项目后的配置与安装

从远程仓库获取到项目代码后,执行以下命令安装node_modules文件夹及启动服务:

cd 项目文件夹
npm install 或者 yarn install
npm start 或者 yarn start


3、rn学习及提升

https://zhuanlan.zhihu.com/p/22782487

http://www.w3school.com.cn/js/index.asp (【JS教程】、【JS HTML DOM】、【JS 对象】)

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript (JavaScript比较权威的reference,用于梳理、学习知识)

http://www.infoq.com/cn/es6-in-depth/  (一、四~七、九、十三~十六)

http://es6.ruanyifeng.com  (一本讲ES6的书,用于梳理、查找、学习知识)

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript (JavaScript比较权威的reference,用于梳理、查找、学习知识)

http://www.w3school.com.cn/html/index.asp (【HTML基础教程】前10小节)

https://facebook.github.io/react-native/docs/layout-props.html

 http://flexboxfroggy.com/

 http://www.flexboxpatterns.com/home

https://facebook.github.io/react/docs/jsx-in-depth.html (【QUICK START】、【ADVANCED GUIDES】JSX In Depth, Refs and the DOM)

https://facebook.github.io/react-native/docs/components-and-apis.html (【Guides】1-4, 7-11, 13~16)

https://facebook.github.io/react-native/docs/native-modules-ios.html (【Guides (iOS)】)

https://facebook.github.io/react-native/docs/native-modules-android.html (【Guides (Android)】)

http://www.redux.org.cn/

https://flow.org

http://eslint.org

https://facebook.github.io/immutable-js/

https://facebook.github.io/jest/


猜你喜欢

转载自blog.csdn.net/Gytha_1/article/details/80351821