前兩篇已經把安裝環境及IDE配置好了,接下來就開始編寫第一個React Native 吧。(提前說一下目前水平,搞了4年Android開發,在學習React Native之前從沒接觸過React,JSX這些東西,自學過一點點JS,可以說是零基礎學習React Native)。
接下來 按照我們學習一門語言的古老傳統,我們先來寫一個Hello World吧!
打開subline ,啟動Terminal終端,進入你想創建工程的目錄下,執行
react-native init HelloWorld
等待工程創建完畢。(很多人說這個過程太慢,有時還會創建失敗,其實只要在配置安裝環境時設置好鏡像,還是很快的)
使用subline 打開工程目錄,并打開index.android.js
刪除默認程序,編寫如下程序:
import React,{Component} from 'react';
import{
AppRegistry,
Text
}from 'react-native';
class HelloWorld extends Component{
render(){
return(
<Text>Hello World!</Text>
);
}
}
AppRegistry.registerComponent('HelloWorld',()=>HelloWorld);
終端中
cd HelloWorld
react-native run-android
程序運行如下:
好了,雖然還不知道上面那段代碼什么意思,但現在已經成功的運行了HelloWorld。現在看不懂沒關系,不要慌,就像官網說的Don't panic. This is the future.哈哈!
下面來分析一下這個代碼
首先import, from, class, extends這些關鍵字以及()=>這個句法均是ES6中的固定語法,現在只要知道這個是固定語法就行了。而且
import React,{Component} from 'react';
import{
AppRegistry,
... ....
}from 'react-native';
這個算是固定寫法吧
class HelloWorld extends Component 意思就是定義一個名為HelloWorld 的新組件,好像我們Android里標準的類繼承寫法啊。
render(){}這是一個渲染函數,每一個組件都必須有這個渲染函數,否則組件是無法顯示的,在render()中還有一個return函數,里邊包含了我們寫的JSX代碼;
其次是<Text>Hello World!</Text> 這個是JSX語法,一種在JS中使用XML的語法,首先是在import中導入了聲明,然后才可以使用,這不和我們java一個道理嘛。這里的<Text>其實就是類似于我們Android中的TextView用來顯示文本。
最重要的事最后一句AppRegistry.registerComponent('HelloWorld',()=>HelloWorld);
這是應用的啟動入口,就像每個Android程序的啟動Activity一樣,意思是我們的HelloWorld被注冊成為一個新的組件,并且為啟動入口,AppRegistry.registerComponent()在整個程序中只可能出現一次。
到現在為止,雖然我還不知道JSX,ES6這些語法,但已經大概搞清楚了HelloWorld 這個工程的大概結構,其實和我們Android還是有些相似地方的。
下一篇搞定Props和State。