天天看點

ReactNative開發環境的搭建與開發前準備(二)

三、運作第一個項目HelloWorld

   如果上面的環境配置和開發工具的配置都已順利完成,那麼你離第一個ReactNative項目已經不遠了,下面我們來通過ReactNative建立HelloWorld項目。

   在終端運作react-native init HelloWorld指令來建立ReactNative項目,這個指令是一個一站式內建指令,其會建立項目并且将所有依賴包都安裝完成。指令成功執行後,進入到項目根目錄中,如下:

ReactNative開發環境的搭建與開發前準備(二)

使用react-native run-ios或者react-native run-android來進行iOS項目或者Android項目的運作,如果你看到如下圖所示的界面,恭喜你,你的ReactNative項目已經可以跑起來了(需要注意:運作安卓項目的時候,安卓模拟器必須先啟動):

需要注意,運作iOS項目時,會預設啟動Xcode的預設模拟器,如果要啟動特定的模拟器,可以使用如下指令:

react-native run-ios --simulator "iPhone SE"

xcrun simctl list devices指令可以列印出所有可用的iOS模拟器,示例如下:

ReactNative開發環境的搭建與開發前準備(二)

觀察HelloWorld項目結構,其目錄如下圖:

ReactNative開發環境的搭建與開發前準備(二)

其中node_modules為node依賴包的目錄,andorid檔案夾為安卓項目目錄,ios檔案夾為iOS項目目錄。index.android.js與index.ios.js兩個檔案是最為重要的兩個檔案,這兩個檔案是iOS項目與Android項目的入口檔案,打開index.ios.js檔案,将其中的代碼修改如下:

import React, { Component } from 'react';

import {

 AppRegistry,

 StyleSheet,

 Text,

 View

} from 'react-native';

export default class HelloWorld extends Component {

 render() {

   return (

     <Text style={{

       flex:1,

       top:100,

       left:100,

       fontSize:30

     }}>HelloWorld</Text>  

   );

 }

}

AppRegistry.registerComponent('HelloWorld', () => HelloWorld);

上面的代碼就是一個最簡單的項目HelloWorld,在iOS模拟器中使用command+R來進行界面的重新整理,效果如下:

ReactNative開發環境的搭建與開發前準備(二)

在安卓模拟器中輕按兩下R鍵來進行界面的重新整理。

提示:如果在iOS模拟器中使用command+R無效,需要将模拟器的Connect Hardware Keyboard進行勾選,如下:

ReactNative開發環境的搭建與開發前準備(二)

四、ReactNative開發工具的選擇

   facebook提供了一個叫做Nuclide的工具專門開發ReactNative應用,其實一個基于atom的內建開發環境,但是我個人更喜歡使用SublimeText來進行ReactNative應用的開發。通過安裝相應的插件,SublimeText來編寫ReactNative應用将十分暢快。

   首先下載下傳SublineText編輯工具,可以在官網進行下載下傳:

http://www.sublimetext.com/

在對SublimeText進行插件安裝前,需要先為其安裝包管理工具PackageControl。在SublimeText工具的導航中選擇View下的Show Console來打開指令行,如下:

ReactNative開發環境的搭建與開發前準備(二)

在指令行中輸入如下代碼進行,敲擊回車進行安裝:

SublimeText2:

import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

SublimeText3:

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

由于網絡等多種原因,上面使用代碼安裝PackageControl的方法很大可能會失敗,我們也可以從官網下載下傳安裝包,将其放在SublimeText的包安裝目錄中,重新開機SublimeText來進行安裝,點選SublimeText的Preferences->Browse Packages選項可以浏覽SublimeText的包目錄:

ReactNative開發環境的搭建與開發前準備(二)

将下載下傳好的PackageControl安裝包放入Installed Package目錄中重新開機即可,如果沒有這個目錄,可以手動建立:

PackageControl的官方下載下傳位址為:

http://sublime.wbond.net/Package%20Control.sublime-package

溫馨提示:PackageControl的官方下載下傳位址通路起來也有一定難度,我将這個安裝包放在了我的github上一份,如果需要,可以從下面的位址下載下傳:

http://zyhshao.github.io/file/Package%20Control.sublime-package

   安裝完成PackageControl工具後,即可使用其來進行SublimeText插件的安裝。

在SublimeText中選擇Preferences->PackageControl即可調出PackageControl指令面闆,如下:

PackageControl中提供了許多實用的方法,例如install Package用來安裝插件,List Packages用來檢視已經安裝過的插件,Remove Package用來删除一個已經安裝的插件等,如下:

點選Install Package進入SublimeText插件的搜尋界面,搜尋到所需要安裝的插件安裝即可,如下:

溫馨提示:在使用PackageContrl的Install Package指令時,很有可能會出現逾時問題,原因是PackageControl需要拉取一個channels檔案清單,而這個檔案在國内往往難以通路到,我也在我的github上存放了一份備份,需要将PackageControl的channels拉取路徑做下修改,選擇SublimeText的Preferences->PackageSettings->PackageControl->Settings-Default選項,如下:

将其中的channels參數修改如下即可:

"channels": [

 "http://zyhshao.github.io/file/channel_v3.json"

],