iOS

React Native介绍

2018-11-08  本文已影响33人  visen_Lu

什么是React Native

React Native使你只使用JavaScript也能编写原生移动应用。 它在设计原理上和React一致,通过声明式的组件机制来搭建丰富多彩的用户界面。

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class WhyReactNativeIsSoGreat extends Component {
  render() {
    return (
      <View>
        <Text>
          如果你喜欢在Web上使用React,那你也肯定会喜欢React Native.
        </Text>
        <Text>
          基本上就是用原生组件比如'View'和'Text'
          来代替web组件'div'和'span'。
        </Text>
      </View>
    );
  }
}

上面代码就是运用react native写的一个简单组件。

为什么要用React Native

1.跨平台兼容性

2、React Native卓越性能

3、社区力量

4、学习成本低

5、调试方便

6、热更新

安装环境

在Mac平台上开发React Native需要安装以下环境和工具:

Note.js
React Native Command Line Tools
XCode/AndroidStudio

1、安装Node.js

React Native开发需要用到Node.js环境。我们做React Native开发会经常性的和Node.js进行打交道,在Mac上安装 Node.js可以通过Homebrew,打开终端运行如下命名:

brew install node

安装完 Node 后建议设置 npm 镜像以加速后面的过程(如果能翻墙可以省略这步):

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

2、安装React Native命令行工具

Note.js安装成功之后,接下来我们就可以通过npm install来安装React Native命令行工具了。

打开终端,输入并执行下面命令即可完成安装:

npm install -g react-native-cli

3、安装iOS开发工具XCode/android开发工具android studio

我们可以在AppStore上搜索XCode并进行下载安装,安装步骤和安装普通的Mac应用是一样的,在这里就不重复了。

android studio可以去中文官网下载,速度更快而且不受防火墙影响。需要注意的是仅仅安装android studio是不够的,还需要安装开发android所需要的jdk和android sdk,这些在android studio官方网站的安装步骤中都有详细描述,与react native本文并无太大联系不再赘述.

4、还可以安装一些有用的命令行工具

Watchman则是由 Facebook 提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager 可以快速捕捉文件的变化从而实现实时刷新)。

brew install watchman

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

npm install -g yarn

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

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

5、创建自己第一个react-native项目

使用 React Native 命令行工具来创建一个名为"HelloReactNative"的新项目:

react-native init HelloReactNative

在你的项目目录中运行以下命令就可以编译运行:

cd HelloReactNative
// 运行IOS
react-native run-ios
// 运行android
react-native run-android

编译成功可以看到一个简单的demo:


demo

组件component

1、组件创建方式

常用的组件创建方式有两种,第一种是单纯一个JavaScript函数,第二种是创建一个JS类

    import React, {Component} from 'react';
    import { Text, View } from 'react-native';

    // 方式一:
    const MyComponent = (props) => (
        <View>
            <Text>MyComponent</Text>
        </View>
    );

    // 方式二:
    class MyClass extends Component {
      render() {
          return (
              <View>
                  <Text>MyClass</Text>
              </View>
          );
      }
    }

    export { MyClass };

    export default MyComponent;

以上两种方式创建的组件用法完全一样,区别在于方式一无法复写组件的声明周期,无法维护state,关于声明周期与state我们将在以后章节里面讲解。

2、组件和模块的导出和引入

1)export 命令

一个独立的文件就是一个模块。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。下面是一个 JS 文件,里面使用export命令输出变量。如上方的自定义组件中的

export { MyClass };

export default MyComponent;
2)import 命令

使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。

    // 非export default输出的,需要使用大括号
    // 和export相同也可以使用as 取别名
    import { firstName, MyComponent ,year as yearName } from './MyComponent';

    // 使用export default时,对应的import语句不需要使用大括号
    import MyClass from './MyComponent';

    // 本质上,export default就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字。所以,下面的写法是有效的。
    import OtherName from './MyComponent';

通过 export 和import 我们就可以在app.js中使用自己创建的组件了

    ...

    import OtherName from './MyComponent';
    ...

    export default class App extends Component<Props> {

        render() {

            return (

              <View style={styles.container}>

                <Text style={styles.welcome}>Welcome to React Native!</Text>

                <Text style={styles.instructions}>To get started, edit App.js</Text>

                <Text style={styles.instructions}>{instructions}</Text>

                <OtherName />

              </View>
           );
        }
    }

组件生命周期

生命周期

如图,可以把组件生命周期大致分为三个阶段:

进入一个RN界面时,Component的声明周期函数大致流程如下:

上一篇下一篇

猜你喜欢

热点阅读