React Native

(1) 基礎(chǔ)知識

1、組件

和React的封裝方式一致

2、樣式

支持FlexBox布局;
支持大部分的css樣式;

3、原生能力

Android的基本知識;
IOS的基本知識;

(2) React與React Native關(guān)系區(qū)別

1、組件調(diào)用

React組件的調(diào)用

import React, { Component } from 'react';
import {
  Layout,
  Menu,
  Breadcrumb,
  Icon
} from 'antd';

React Native組件的調(diào)用

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';
2、樣式寫法

React的樣式調(diào)用和寫法

export default class App extends Component {
    render() {
        const { menus, contents,  current } = this.state;

        return(
            <div className="root">
                <div className="container">
                   <Header />
                   <Content>
                   { contents[current] }
                   </Content>
                </div>
            </div>
        )
    }
}
.root {
    display: flex;
    flex-direction: row;
}

.container {
    flex: 1;
    height: 480px;
    background-color: rgb(240, 245, 249);
}

React Native的樣式調(diào)用和寫法

1、樣式調(diào)用不是className,而是style;
2、樣式屬性使用駝峰命名方式書寫;
3、樣式使用使用StyleSheet.create()創(chuàng)建;

export default class App extends Component {
  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>
      </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,
  },
});
3、Android相關(guān)知識

React Native項(xiàng)目目錄
image.png

Android項(xiàng)目目錄
結(jié)合項(xiàng)目目錄

IOS項(xiàng)目
結(jié)合xcode

(3) React Native環(huán)境和IDE

Mac電腦可以同時開發(fā)IOS和Android,
Window電腦只能開發(fā)Android;

Android開始使用Android Studio
IOS開發(fā)使用XCode

(4) React Native打包

1、使用原生自由的打包工具和命令;
2、自定義的模塊打包,比如文件太大的拆包,按需加載本地文件,按需加載線上文件;

以Android為例

// 打包命令
node node_modules/react-native/local-cli/cli.js bundle --platform android --dev false --entry-file index.js  --bundle-output ./src/index.android.bundle
–platform android 意思是編譯為android平臺所需要的代碼,
–entry-file index.android.js 意思是入口文件是RN工程下的index.android.js,因?yàn)槲覀兠钍窃赗N工程目錄下執(zhí)行的,index.android.js也在RN工程根目錄,所以不用加相對路徑
–bundle-output RNDemo/app/src/main/assets/index.android.bundle 意思是把編譯后的bundle輸出到哪里,在這里我們和官網(wǎng)要求的一樣,輸出到我們Android工程的assets目錄下,最后定義我們bundle文件的全名稱index.android.bundle
–assets-dest RNDemo/app/src/main/res/my_floder 意思是資源文件輸出的位置,例如我們最開始提到的RN工程下的imgs文件夾,用于存放圖片,就屬于資源文件,所有的RN工程需要的資源文件會被copy到RNDemo/app/src/main/res/my_floder這個目錄下。

(5) 下次分享

React Native拆包,用戶無感知的熱更新;
Android和IOS原生組件模塊封裝;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,187評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,047評論 2 59
  • 關(guān)于作者 吳軍博士,美國頂級高校約翰霍普金斯大學(xué)工學(xué)院董事會董事,硅谷風(fēng)險(xiǎn)投資公司創(chuàng)辦者,曾在谷歌公司領(lǐng)導(dǎo)計(jì)算機(jī)自...
    讓你更值錢閱讀 579評論 0 4
  • 姓名:鄭楠 公司:金百靈寧波分公司 【領(lǐng)導(dǎo)力日精進(jìn)第93天】 一、【知~勤學(xué)】 ①日常課誦 默誦 《領(lǐng)導(dǎo)者的十項(xiàng)資...
    鄭楠_47c3閱讀 171評論 0 0
  • 傍晚時分,一場雨不緊不慢的路過此地,潮濕空氣,打濕發(fā)絲。不知名的鳥亮出獨(dú)有的清脆,在枝頭歡呼雀躍。枝頭成熟的杏兒還...
    e623c24eb35f閱讀 267評論 0 1

友情鏈接更多精彩內(nèi)容