精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

React Native 你該了解的 Hello World

開發(fā) 開發(fā)工具
今天介紹 RN 的基礎(chǔ)開發(fā),讓大家能初步了解 RN 開發(fā)。

[[181099]]

2013 年 Facebook 開源了 React 框架,去年上半年開源了基于 React 的 React Native 框架 iOS 部分,下半年開源了 Android 部分。目前國內(nèi) QQ、天貓、攜程、QZone 等都有部分功能用 React Native 開發(fā)。

注:以下部分 React Native 以簡稱 RN 代替,Node 及 Node.js 均表示 Node.js。

限于篇幅,RN 的原理、 RN 與 Native 以及 Hybird 的優(yōu)劣對比、RN 的頁面跳轉(zhuǎn)及 Flexbox 等后面再分享,今天只介紹 RN 的基礎(chǔ)開發(fā),讓大家能初步了解 RN 開發(fā)。

1. 介紹

React 的 GitHub 介紹是:

  1. A declarative, efficient, and flexible JavaScript library for building user interfaces. 

簡單的說 React 就是一個 JS 庫,一個可用于編寫 UI 的庫。

React Native 的 GitHub 介紹是:

  1. A framework for building native apps with React. 

React Native 基于 React,可用來開發(fā) iOS 和 Android 原生應(yīng)用。

2. React Hello World

 React 示例

上面是 React 示例,是一個簡單的 html 文件,其結(jié)果是顯示 Hello CodeKK。

內(nèi)容主要分為三部分:

***部分引入 React JS 文件,跟一般的 JS 文件引入無異。

第二部分是定義一個 HelloMessage 的組件,組件的渲染函數(shù) render 輸出一個 div,div 內(nèi)容接受一個名為 name 的變量。

第三部分是 ReactDOM 將 HelloMessage 組件渲染到 example 這個 DOM 節(jié)點(diǎn)(body 內(nèi)部的 div)中。

上面的第二、三部分是 JSX 語法,這是 Facebook 對 ECMAScript 的擴(kuò)展,即 JavaScript 語法擴(kuò)展,基于 XML 樣式。非必須,React 也可以直接調(diào)用原生 JS。

JSX 語法可以讓前端代碼可讀性更高,同時像 Java Web 的 Velocity 以及 Node 的 Jade 一樣支持?jǐn)?shù)據(jù)綁定。

通過 React 我們可以讓 UI 代碼基于組件化開發(fā),可以更好的組合、復(fù)用,更方便進(jìn)行測試和維護(hù)。

同時 React 通過 Virtual DOM 提高性能,不直接操作 Real DOM,達(dá)到快速渲染的效果。

3. 新建 React Native Hello World

在完成必要軟件安裝后,命令行運(yùn)行

  1. react-native init AwesomeProject 

新建工程,其中 AwesomeProject 為工程名,在工程目錄下運(yùn)行

  1. react-native run-android 

或者

  1. react-native run-ios 

分別打包為 Android 或 iOS 應(yīng)用,編譯部署到相應(yīng)模擬器上運(yùn)行。

4. React Native Hello World 工程簡介

4.1 RN 工程目錄

RN 工程目錄

(1) android/ios 文件夾

用于存放 Android/iOS 平臺需要單獨(dú)適配的代碼。拿 Android 為例,android 文件夾內(nèi)部目錄結(jié)構(gòu)跟我們一般的 Android 工程一樣。

(2) index.android.js 和 index.ios.js 文件

分別為 Android 和 iOS 的啟動入口,可以簡單理解為 Java 的 Main 或者 Android 的 LAUNCHER & Main Activity。

React Native 可以通過將 .android 及 .ios 放在文件后綴前面作為 Android 及 iOS 的單獨(dú)適配文件。

如現(xiàn)在需要用到名為 codekk 的圖片,圖片目錄中有 codekk.png 和 codekk.android.png 兩個文件,則 iOS 平臺會打包 codekk.png,而 Android 平臺會打包 codekk.android.png 文件。

(3) package.json

package.json

跟 Node 工程類似,用于描述項(xiàng)目的基本信息以及需要的依賴信息,比如默認(rèn)依賴 React 和 React Native。

RN 也是通過 Node.js 的 npm 做依賴管理。

(4) node_modules 文件夾

自動生成的文件夾,存放 package.json 中配置的依賴的源碼以及 bin。

(5) 其他配置文件

.watchmanconfig 為 watchman 的配置文件,watchman 用于監(jiān)控文件變化,輔助實(shí)現(xiàn)工程修改所見即所得。

.flowconfig 為 flow 的配置文件,flow 用于代碼靜態(tài)檢查。

.buckconfig 為 buck 的配置文件,buck 是 Facebook 開源的高效編譯系統(tǒng),對 Android iOS 同時適用,通過復(fù)用未修改的代碼單元、增量編譯等提高編譯效率。

4.2 index.android.js 內(nèi)容

index.android.js 和 index.ios.js 文件內(nèi)容默認(rèn)一樣,如下:

index.android.js 和 index.ios.js 文件內(nèi)容默認(rèn)一樣

這是一個 js 文件,通過

  1. react-native run-android 

命令運(yùn)行后,其在 Android 模擬器中運(yùn)行結(jié)果為:居中顯示 Welcome to React Native!。

文件內(nèi)容主要分為三部分:

(1) 引入需要的組件

比如需要 react 中的 Component,需要 react-native 中的 View,跟 Java 以及 C++ 開發(fā)類似。

(2) 定義新的組件

繼承 Component 定義新的組件,組件的 render 函數(shù)返回一個 View,View 內(nèi)包含一個 Text 控件。

styles 為樣式,跟 CSS 類似。

(3) 注冊組件

AppRegistry 是運(yùn)行 RN Apps 的 JS 切入點(diǎn),App 的根組件需要通過 AppRegistry.registerComponent 注冊。

5. React Native 調(diào)試

(1) 即時運(yùn)行

React Native 調(diào)試即時運(yùn)行

通過 Debug 菜單開啟 Enable Hot Reloading 以及 Atom 編輯器的自動保存,可以達(dá)到修改代碼后自動部署到模擬器的效果。

Live Reload 與 Hot Reloading 類似,只是 Live Reload 之后會重新進(jìn)入 App 首頁,而 Hot 可以在當(dāng)前頁面直接刷新。

如果修改了 android 及 ios 文件夾下的內(nèi)容或者添加新的圖片等無法 Hot Reloading,需要重新運(yùn)行。

(2) 打日志

通過代碼中添加

  1. console.log('response from codekk is :' + response); 
  2.  
  3. console.error('error is :' + error); 

打印日志。console.warn console.info 等表示其他級別日志。

iOS 日志會打印在 Xcode 中。

Android 需要通過 adb logcat *:S ReactNative:V ReactNativeJS:V 命令在 Terminal 輸出日志。

(3) 遠(yuǎn)程調(diào)試

可以跟 JS 或 Node.js 一樣在 Chrome Developer Tools 中調(diào)試 React Native,在上面 Debug 菜單中選中 Debug JS Remotely,默認(rèn)會打開 http://localhost:8081/debugger-ui 調(diào)試頁面,如下圖:

打開 http://localhost:8081/debugger-ui 調(diào)試頁面

6. React Native 基礎(chǔ)組件

React Native 基礎(chǔ)通用組件包括 Text、Image、TextInput、ListView、View、WebView、Switch、Slider、ScrollView、MapView 等。

還有只適用于 Android 平臺的 DrawerLayoutAndroid、ProgressBarAndroid、ToolBarAndroid 等。

只適用于 iOS 平臺的 ProgressViewIOS、SegmentedControlIOS 等。

下面簡單以 Image、ListView 為例進(jìn)行介紹

(1) Image 組件

本地圖片 codekk.png

表示顯示本地圖片 codekk.png。

可以通過文件名后綴前加 @2x 和 @3x 表示不同分辨率圖片,如 codekk@2x.png、codekk@3x.png。

也可以直接顯示網(wǎng)絡(luò)圖片。

直接顯示網(wǎng)絡(luò)圖片

(2)ListView 組件

ListView 組件

在 render 渲染函數(shù)中調(diào)用 ListView 控件,有兩個主要的屬性 dataSource 和 renderRow。

dataSource 表示數(shù)據(jù)源,為一個數(shù)組,在組件構(gòu)造函數(shù)中初始化。

renderRow 表示渲染每行時會調(diào)用的函數(shù),入?yún)⑹?dataSource 中的一個數(shù)據(jù),類似 Android 的 getView。

ListView 同樣支持分割線、Header 及固定的分塊 Header、Footer、滾動監(jiān)聽、到達(dá)底部監(jiān)聽等特性。

7. React Native 網(wǎng)絡(luò)

RN 支持 Fetch、WebSocket、XMLHttpRequest 三種請求方式,其中 Fetch 方式更為常用,以 Fetch 為例:

 7. React Native 網(wǎng)絡(luò)

表示網(wǎng)絡(luò)獲取 http://api.codekk.com/op/page/1 的數(shù)據(jù),并轉(zhuǎn)換為 JSON,然后輸出。

8. Android、iOS 代碼共用

在 4.1 RN 工程目錄 的介紹中,我們可以看到分別有 index.android.js 和 index.ios.js 文件,我們看下怎么讓 Android 和 iOS 實(shí)現(xiàn)簡單的代碼復(fù)用。

將 index.android.js 和 index.ios.js 文件全部改為如下內(nèi)容:

將 index.android.js 和 index.ios.js 文件全部改為如下內(nèi)容

即讓 Android 和 iOS 都調(diào)用 index.js,在 index.js 中實(shí)現(xiàn)相同啟動邏輯。

index.js 內(nèi)容如下:

index.js 內(nèi)容

在 android、ios 文件夾同級目錄下新建 js 目錄存放共用代碼。

這樣 index.js 中示例除 ViewPagerAndroidDemo 和 DrawerLayoutDemo 只在 Android 下運(yùn)行有效果外,其他 Demo 都可以原封不動運(yùn)行在 iOS 中。

上面所有代碼都在 https://github.com/trinea/react-native-demo 中。

【本文是51CTO專欄作者Trinea的原創(chuàng)文章,轉(zhuǎn)載聯(lián)系作者本人獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2023-09-26 07:44:52

JavaJVM

2019-12-12 09:23:29

Hello World操作系統(tǒng)函數(shù)庫

2022-02-28 10:30:03

架構(gòu)代碼Native

2020-10-29 10:26:28

DevOps軟件自動化

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2021-04-17 18:19:23

FlutterReact Nativ開發(fā)

2016-12-29 11:01:54

ReactVue

2019-07-05 10:53:55

ReactVue前端

2021-01-04 08:37:53

動態(tài)規(guī)劃DP

2015-09-22 14:19:56

Cloud NativDevOps持續(xù)交付

2012-02-20 14:26:48

JavaPlay Framew

2023-09-04 07:30:03

Wasm匯編語言

2009-08-11 10:32:23

什么是Groovy

2009-07-30 13:21:17

Scala入門Hello World

2011-06-08 14:39:06

Qt 教程

2009-09-16 17:15:19

OSGi Bundle

2023-01-06 08:18:44

2014-01-10 10:51:54

2015-10-27 09:47:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

91蜜桃免费观看视频| 热久久天天拍国产| 午夜视频在线观看一区| 国产一区二区在线网站| 亚洲国产成人无码av在线| 九一国产精品| 日韩一区二区精品| 亚洲午夜无码av毛片久久| 高清av在线| 国产一区二区视频在线播放| 午夜精品美女自拍福到在线| 亚洲av成人无码久久精品| 老司机亚洲精品一区二区| 欧美日韩国产区| 亚洲精品一品区二品区三品区| va婷婷在线免费观看| 国产午夜精品一区二区三区欧美 | 欧美精品无码一区二区三区| 黄色av电影在线观看| 94色蜜桃网一区二区三区| 国产欧美日韩精品专区| 日韩乱码在线观看| 婷婷精品进入| 亚洲一级免费视频| 国产一卡二卡三卡四卡| 亚洲电影二区| 日韩人在线观看| 91午夜在线观看| 日本成人网址| 国产情人综合久久777777| 高清av免费一区中文字幕| 亚洲视频一区在线播放| 国产精品婷婷| 欧美激情精品久久久久久久变态| 你懂得视频在线观看| 日韩在线黄色| 亚洲国产精品久久精品怡红院| 日本一二区免费| 性欧美1819sex性高清| 亚洲国产三级在线| 国产又粗又爽又黄的视频| 粉嫩av一区| 久久久久久9999| 国产一区国产精品| 精品人妻无码一区二区色欲产成人 | 黄色一级视频播放| av女优在线| 久久久午夜电影| 久久99精品国产99久久| 亚洲精品久久久蜜桃动漫 | 国产一区久久| 久热在线中文字幕色999舞| 国产视频不卡在线| 精品国产一区二区三区四区| 日韩精品极品视频免费观看| 亚洲视频在线播放免费| 国产精品自在| 亚洲精品国产电影| 香蕉视频黄色在线观看| 欧美网色网址| 日韩精品在线观看视频| 少妇饥渴放荡91麻豆| 欧美韩一区二区| 日韩av一区在线| 国产ts丝袜人妖系列视频| 首页亚洲中字| 国产视频精品久久久| 亚洲午夜久久久久久久久红桃| 欧美挤奶吃奶水xxxxx| 日韩高清欧美高清| 男人操女人动态图| 成人一级毛片| 久久精品成人欧美大片| 婷婷色中文字幕| 国产一区二区中文| 欧美亚洲成人xxx| 黄色片视频免费| 麻豆成人91精品二区三区| 91精品久久久久久久久中文字幕 | 久久国产婷婷国产香蕉| 国产精品中文字幕在线观看| 一级二级三级视频| 国产一区二区在线观看免费 | 亚洲黄色片视频| av一区二区不卡| 日本欧美精品久久久| 人人干在线视频| 一级特黄大欧美久久久| 成年人午夜免费视频| 欧美日韩激情电影| 欧美福利视频导航| 激情久久综合网| 国产一区丝袜| 综合国产在线观看| 欧美日韩精品在线观看视频 | 欧美最猛性xxxxx亚洲精品| 欧美国产在线看| 中文亚洲字幕| 国产精品免费久久久久久| 国产www视频| 久久网站热最新地址| 亚洲一区二区在线看| 久久久123| 在线观看91视频| 97免费公开视频| 免费黄色成人| 超碰91人人草人人干| 91av在线免费视频| 精品亚洲国产成人av制服丝袜| 古典武侠综合av第一页| 国产福利电影在线| 亚洲一区二区欧美| 午夜免费高清视频| 久久悠悠精品综合网| 中文字幕欧美精品日韩中文字幕| 动漫精品一区一码二码三码四码| 日韩和欧美的一区| 国产欧美一区二区视频| 黄色一级片在线观看| 色婷婷久久久综合中文字幕| 国产精品日日摸夜夜爽| 日韩精品一区二区久久| 国产91精品高潮白浆喷水| www.超碰在线.com| 国产精品人成在线观看免费| 91视频 -- 69xx| 日韩三级网址| 久久精品人人做人人爽| av片免费观看| 91麻豆蜜桃一区二区三区| 337p亚洲精品色噜噜狠狠p| 精品三级在线| 亚洲欧美在线免费观看| 日本三级中文字幕| 成人性生交大片免费| 中文字幕在线亚洲三区| 精品无人乱码一区二区三区 | 国产天堂在线| 黄色精品在线看| 中文字幕一区二区三区人妻在线视频 | 黄色资源网久久资源365| 热re99久久精品国产99热| 岛国av在线网站| 精品国产a毛片| 久久影院一区二区| 国产激情视频一区二区三区欧美 | 欧洲亚洲国产日韩| 国精品无码人妻一区二区三区| 在线成人www免费观看视频| 91超碰在线免费观看| 日韩av中文| 欧美综合天天夜夜久久| 性高潮久久久久久久| 国产欧美大片| 免费电影一区| 成人做爰视频www网站小优视频| 亚洲韩国欧洲国产日产av| 中文字幕第28页| 不卡一区在线观看| 每日在线更新av| 天天躁日日躁成人字幕aⅴ| 欧美亚洲国产日韩2020| 日韩精品123| 日本韩国欧美国产| 手机av在线不卡| 日av在线不卡| 99热一区二区三区| 日韩黄色av| 91精品国产高清久久久久久| 日本精品专区| 欧美午夜在线一二页| 久久99久久99精品免费看小说| 国产一二精品视频| 男人添女人下部视频免费| 美女午夜精品| 国产成人免费av| 黄色在线免费网站| 亚洲第一中文字幕| 三级视频在线观看| 国产精品色在线观看| 欧美熟妇另类久久久久久多毛| 国内精品福利| 蜜桃久久精品乱码一区二区| 国产激情久久| 欧美大片免费观看在线观看网站推荐| 亚洲欧美另类视频| 日韩欧美第一页| 熟女少妇a性色生活片毛片| 国产超碰在线一区| 99久久国产宗和精品1上映| 偷偷www综合久久久久久久| 国产精品手机在线| 丁香婷婷久久| 久久久久国产精品免费网站| 精品视频二区| 日韩精品一区二区三区中文不卡| 午夜婷婷在线观看| 专区另类欧美日韩| 三级黄色片网站| 韩国成人福利片在线播放| 动漫av网站免费观看| 91精品亚洲| 欧美一区2区三区4区公司二百| 欧美二区观看| 国产精品99一区| 日本孕妇大胆孕交无码| 在线播放日韩精品| 欧美一级在线免费观看| 欧美男同性恋视频网站| 亚洲天堂一区在线观看| 亚洲免费观看高清| 免费黄色片网站| 成人三级在线视频| 亚洲第一天堂久久| 三级在线观看一区二区| 日韩网站在线免费观看| 99久久99视频只有精品| 欧洲一区二区在线| 美国一区二区| 国产福利久久精品| 9999在线精品视频| 国产精品wwww| 中文字幕在线免费观看视频| 欧美极品少妇xxxxⅹ喷水| 黄色精品在线观看| 中文字幕在线观看日韩| 免费一级在线观看播放网址| 精品国产一二三| 亚洲av无码国产精品永久一区| 91福利视频网站| 久久久久久久久影院| 亚洲香蕉伊在人在线观| 美女福利视频在线观看| 国产精品久久久久久户外露出| 国产三级av在线播放| av资源网一区| 亚洲成年人av| 丰满岳乱妇一区二区三区| 亚洲一区二区三区四区精品| 六月婷婷色综合| 三级视频中文字幕| 日本伊人色综合网| 久久久久久久久久久久久久国产| 在线视频免费在线观看一区二区| 欧妇女乱妇女乱视频| 欧美女激情福利| 国产乱人伦精品一区二区三区| 亚洲91中文字幕无线码三区| 国产欧美自拍视频| 亚洲精品网址| 一二三四中文字幕| 黄色亚洲免费| 国产精品久久中文字幕| 一本色道久久综合亚洲精品不| 国产极品尤物在线| 国产一区白浆| 可以在线看的黄色网址| 日本美女一区二区| 久久久久久蜜桃一区二区| 麻豆精品在线播放| 一区二区三区四区毛片| 国产乱人伦偷精品视频免下载| 超碰在线超碰在线| 粉嫩av亚洲一区二区图片| 午夜剧场免费看| 26uuu国产日韩综合| 国产成人av一区二区三区不卡| 国产欧美中文在线| 性色国产成人久久久精品| 亚洲日本丝袜连裤袜办公室| 久久艹精品视频| 天天影视涩香欲综合网| 亚洲综合成人av| 欧美一级高清片| 色窝窝无码一区二区三区| 亚洲欧美激情精品一区二区| 黄色av免费在线观看| yellow中文字幕久久| 超碰97免费在线| 国产成人精品久久亚洲高清不卡| 中文成人激情娱乐网| 国产久一道中文一区| 欧美裸体在线版观看完整版| 中国成人亚色综合网站| 亚洲三级电影在线观看| 网站一区二区三区| 国产91在线|亚洲| av黄色免费网站| 亚洲特级片在线| 青青草av在线播放| 欧美高清视频一二三区 | 久久久国产精品网站| 99电影网电视剧在线观看| 欧美激情在线精品一区二区三区| 中文字幕久久一区| 国产精品主播| 日本在线观看视频一区| 91蜜桃传媒精品久久久一区二区| 神马午夜精品91| 亚洲777理论| 亚洲图片中文字幕| 精品视频一区在线视频| a视频在线免费看| 国产精品777| 成人线上播放| 日日噜噜噜夜夜爽爽| 香蕉久久国产| 丰满人妻一区二区三区大胸| 国产欧美一区二区在线观看| 国产极品在线播放| 欧美另类变人与禽xxxxx| 日韩av资源站| 欧美精品久久一区二区| 99精品美女视频在线观看热舞| 欧美福利精品| 亚洲免费成人| ass极品水嫩小美女ass| 国产精品国产精品国产专区不蜜| 日本视频在线观看免费| 精品国产露脸精彩对白| 免费**毛片在线| 国产精品旅馆在线| 九色精品91| 韩国日本在线视频| 91小视频免费看| 免费观看一级视频| 日韩美一区二区三区| 免费大片黄在线| 国产精品视频xxx| 国精一区二区| 国产主播在线看| 97国产一区二区| 国产精品第56页| 精品国产91洋老外米糕| 3d玉蒲团在线观看| 91中文字幕在线| 国产精品91一区二区三区| 亚洲福利精品视频| 国产日韩精品一区| 免费又黄又爽又猛大片午夜| 亚洲欧美国产日韩中文字幕| 天堂av中文在线观看| 久久久久久久久久久久久久一区 | 日韩av手机版| 欧美—级在线免费片| 波多野结衣视频网址| 一区二区三区高清国产| 韩日一区二区| 亚洲午夜激情| 韩国三级在线一区| 国产波霸爆乳一区二区| 日韩视频一区二区三区| 欧美aaa免费| 国产二区一区| 亚洲女人av| 久久亚洲无码视频| 欧美老女人第四色| 国产精品久久久久久福利| 91最新在线免费观看| 欧美色123| 三叶草欧洲码在线| 色悠悠亚洲一区二区| 99riav在线| 91青草视频久久| 欧美午夜影院| 亚洲国产精品无码久久久久高潮| 日韩欧美国产中文字幕| 成av人电影在线观看| 亚洲aⅴ男人的天堂在线观看 | 久久黄色影视| 欧美激情国产精品日韩| 国产精品久久久久天堂| 国产黄色大片网站| 91成人在线视频| 日本不卡二三区| 中文字幕18页| 在线亚洲高清视频| 国产传媒在线播放| 精品一区久久| 日本中文字幕一区| 久久网中文字幕| 亚洲网址你懂得| 国产午夜亚洲精品一级在线| 少妇无码av无码专区在线观看| 国产欧美日韩在线| 午夜美女福利视频| 国产99久久精品一区二区永久免费 | 高清一区二区三区| 无码日韩人妻精品久久蜜桃| 亚洲免费观看高清完整版在线观看熊| 性xxxxbbbb| 91精品在线一区| 先锋影音久久| 免费看一级大片| 亚洲欧美中文日韩v在线观看| 亚洲成人毛片| 国产一区视频免费观看| 一区二区三区在线视频观看58| 可以在线观看的av网站| 99re国产在线播放|