React Native开发入门

目录:

一、前言

二、什么是React Native

三、开发环境搭建

四、预备知识

五、最简单的React Native小程序

六、总结

七、参考资料

一、前言

虽然只是简单的了解了一下React的皮毛,但是对React Native的学习就轻松了好多。所以在学习React Native之前,最好还是先学习一下React。因为我学习的iOS开发,对iOS更加了解,所以里面主要涉及到的平台也是iOS。

二、什么是React Native

React Native是一款用来开发真正原生、可渲染iOS和Android移动应用的JavaScript框架。它和React的最大的区别就是React是将浏览器作为渲染平台,而React Native则是将移动设备作为渲染平台。

与Web平台的React类似,React Native也实用JSX进行开发,这种编程语言结合了JavaScript和类XML标记语言。React Native在后台通过桥接的方式调用由OC或Java开发的原生渲染接口,因此应用汇实用真正的原生移动UI组件,而不是传统的WebView渲染方式,进而拥有与其他移动应用一样的外观和体验。

React Native的声明周期和React相同,当属性(props)或状态(state)发生改变的时候,React Native会重新渲染视图。

React Native并不是在主线程上运行,它可以不影响用于体验的前提下执行中这些异步调用。

React Native工作原理:

React Native也是用的JSX语法。

三、开发环境搭建

首先,你应该安装Homebrew。它是Mac系统的通用包管理工具可以用来安装React Native的相关依赖。这里假设你已经安装了Homebrew。

第一步:

接下来打开终端,输入以下命令:

1、brew intsall node
2、brew install watchman
3、brew install flow (安装的类型检查库)

如果你在安装过程中遇到问题,可能需要更新一下brew和相关依赖包:

1、brew update
2、brew upgrade

第二步:

假设你已经安装好了node,就可以通过npm(node包管理器)来安装React Native 命令行工具了。打开终端,输入:

npm install -g react-native-cli

这个步骤将会在系统上全局安装React Native。

如果已经完成上述两步,开发环境也就已经搭建完成了。

四、预备知识

这里面假设你已经对React有了一定的了解(可以参考这里),对Node有了一定的了解。

五、最简单的React Native小程序

这里我们还是来创建一个Hello,World!的小程序。

在命令行里面输入以下命令行,它会为你生成一个包含React Native,iOS和Android的全新模板工程:

react-native init HelloWorld

创建过程可能会有点慢,稍微等待一会。

初始化完成之后如下所示:

我们可以看到,初始化完成之后,有文字提示,如何在iOS上运行app,如何在Android上运行app。

我们先打开生成目录下的index.ios.js文件

修改其中的class Helloworld如下:

export default class Helloworld extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Hello World!
        </Text>
      </View>
    );
  }
}
 

然后我们在终端执行即可。运行结果如下:

这样一个最简单的React Native小程序Helloworld就完成了。

接下来让我们来看一下刚刚我们init的helloworld工程代码。

1、先看看Appdelegate里面的变化吧

#import "AppDelegate.h"

#import "RCTBundleURLProvider.h"
#import "RCTRootView.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;

  jsCodeLocation = [[RCTBundleURLProvidersharedSettings] jsBundleURLForBundleRoot:@"index.ios"fallbackResource:nil];

  RCTRootView *rootView = [[RCTRootViewalloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"Helloworld"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [[UIColoralloc] initWithRed:1.0fgreen:1.0fblue:1.0falpha:1];

  self.window = [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds];
  UIViewController *rootViewController = [UIViewControllernew];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.windowmakeKeyAndVisible];
  returnYES;
}

@end

其实看过就会发现,原来React Native只是重写了Appdelegate的rootViewController的根视图。然后Xcode项目工程里面有了一个Libraries文件夹,里面有好几个工程,里面其实就是FeceBook自己开发的工程,应该是定义了一些类以及其他公共模块。

2、注册顶层组件

打开index.ios.js,如下:

import React, { Component } from ‘react‘;
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from ‘react-native‘;

export default class Helloworld extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Hello World!
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: ‘center‘,
    alignItems: ‘center‘,
    backgroundColor: ‘#F5FCFF‘,
  },
  welcome: {
    fontSize: 20,
    textAlign: ‘center‘,
    margin: 10,
  },
  instructions: {
    textAlign: ‘center‘,
    color: ‘#333333‘,
    marginBottom: 5,
  },
});

AppRegistry.registerComponent(‘Helloworld‘, () => Helloworld);

最后一句registerComponent宝楼了Helloworld组件,使得我们能够在AppDelegate.m文件中使用它。大多数情况下,我们不需要去修改这个模板代码。

其中的:

import React, { Component } from ‘react‘;
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from ‘react-native‘;
 

其中的import React用于导入React。注:这里采用的是ES6标准(ECMAScript6,因为这里面默认的就是ES6了,所以我就拿ES6来简单说明了)。infoQ有一个简单的介绍

React Native的使用方面有一点比较奇特,那就是你要导入所需的每一个组件或者模块。

其中的StyleSheet其实就是其中对组件中一些控件的CSS。React Native中所有的样式都采用样式对象来代替传统的样式表,标准的做法就是利用StyleSheet库进行样式的编写。

我们可以使用command+R来重新运行程序,使用command+D来唤起开发工具。

六、总结

根据书籍和博客的学习,自己终于跑出了第一个React Native小程序:Hello,world!现在只是最简单的入门知识,仅仅是对React Native有了一个简单的了解,如果想进一步学习,可以到React Native官网

七、参考资料

1.React Native官方文档

2.React Native开发指南

附:如有问题,随时留言联系。

时间: 2024-10-11 01:00:55

React Native开发入门的相关文章

React Native开发的通讯录应用

React Native开发的通讯录应用(使用JavaScript开发原生iOS应用,vczero) 0.前言: 项目地址:https://github.com/vczero/React-Native-App 欢迎大家提issues讨论任何问题,包括“试衣间”.... 一.项目介绍 基于React-Native & Node通讯录App (1)主要完成的功能有: 基于文件系统的Node.js服务端; 通讯录功能(分类页 + 列表页 + 拨号邮箱邮件) 公告功能(列表页 + 详情页) 通讯录和内容

React Native 从入门到原理

抛砖引玉(帮你更好的去理解怎么产生的 能做什么) 砖一.动态配置 由于 AppStore 审核周期的限制,如何动态的更改 app 成为了永恒的话题.无论采用何种方式,我们的流程总是可以归结为以下三部曲:"从 Server 获取配置 –> 解析 –> 执行native代码". 很多时候,我们自觉或者不自觉的利用 JSON 文件实现动态配置的效果,它的核心流程是: 通过 HTTP 请求获取 JSON 格式的配置文件. 配置文件中标记了每一个元素的属性,比如位置,颜色,图片 UR

React Native 从入门到原理一

React Native 从入门到原理一 React Native 是最近非常火的一个话题,介绍如何利用 React Native 进行开发的文章和书籍多如牛毛,但面向入门水平并介绍它工作原理的文章却寥寥无几. 本文分为两个部分:上半部分用通俗的语言解释了相关的名词,重点介绍 React Native 出现的背景和试图解决的问题.适合新手对 React Native 形成初步了解. 下半部分则通过源码(0.27 版本)分析 React Native 的工作原理,适合深入学习理解 React Na

React Native基础&amp;入门教程:初步使用Flexbox布局

在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小步>. 在本篇里,让我们一起来了解一下,什么是Flexbox布局,以及如何使用. 一.长度的单位 在开始任何布局之前,让我们来首先需要知道,在写React Native组件样式时,长度的不带单位的,它表示“与设备像素密度无关的逻辑像素点”. 这个怎么理解呢? 我们知道,屏幕上一个发光的最小点,对应着一个

Mac配置React Native开发环境

一直觉得学习一样东西,不动手怎么也学不会,就像学习swift,看了视频没有动手操作,记住的也就那么点,自己写出东西不是这里有问题就是那里出错. 所以,以后学习自己要多动手. 现在我的学习任务就是: 提高自己的iOS代码专业能力,掌握Swift3.0,顺便学习学习React Native. 学习一门语言当然少不了硬件和软件设备啦,不然怎么学习...嘿嘿,对吧!!!! 下面记录下自己配置React Native开发环境: 1> 安装brew: 打开终端,输入:   /usr/bin/ruby -e

react native 开发IOS

转载自kaich blog(http://www.kaich.xyz) 接触 react native 对于技术,我比较喜欢追新.看到报道大名鼎鼎的facebook(开源界的模范,发布了很多高质量的开源框架)开源了移动端跨平台的新框架react native,于是就迫不及待的开始接触它了.react native的目的是为了让前端开发任务能开发移动端(ios程序员相对于web端来说要少得多),于是就有了这样的框架.对于我们IOS程序员有没有必要去学它,看到它另外一个特性:跨平台,而且又一定程度的

React Native 开发之 (02) 用Sublime 3作为React Native的开发IDE

Sublime Text是一个代码编辑器.也是HTML和散文先进的文本编辑器.漂亮的用户界面和非凡的功能,例如:迷你地图,多选择Python插件,代码段等等.完全可自定义键绑定,菜单和工具栏等等.漂亮的用户界面和非凡的功能,Sublime Text的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等. 1.下载安装Sublime 3 Sublime 3的下载地址: http://www.sublimetext.com/3 选着相应的平

DECO 一个REACT NAtive 开发IDE工具

DECO 一个REACT NAtive 开发IDE工具. 目前只支持 OS,NO WINDOWS https://www.decosoftware.com/ 一个方便的快速 ERXPRESS 教程:http://www.reactnativeexpress.com/    配套学习.

【React Native开发】React Native开发IDE安装及配置

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50476350 本文出自:[江清清的博客] (一)前言 上一讲我们已经对于在OS X系统上面对于React Native For Android的环境搭建以及第一个实例做了详细讲解.所谓工欲善其事,必先利其器,做React Native开发也和其他应用开发一样,最好有一个比较好的IDE工具.那么这边比较推荐以下几款工具:sublime,webstorm以及官网推荐的N