基于react-native的小項目總結

基于公司某款APP對于頻繁的更新需求和對交互和性能上面的追求钻蹬,決定用react-native(以下簡稱rn)來替代原來在APP里面的H5頁面舰蟆,在這里對此次小項目做些回顧總結纱注,以及對rn的基礎知識點進行進一步了解咬崔。

1. 項目開發(fā)環(huán)境介紹:

  1. 開發(fā)設備: mac
  2. node: 8.9.4
  3. react: 16.3.1
  4. react-native: 0.51.0
  5. teaset: 0.5.6(rn UI框架)
  6. xcode 9.2
  7. Android Studio 3.0.1(以下簡稱as)
  8. Genymotion模擬器
  9. VirtualBox虛擬機 5.1.30

2. 準備工作

項目是基于rn官方腳手架搭建税稼,全局安裝rn腳手架

npm install react-native-cli -g

Watchman是由Facebook提供的監(jiān)視文件系統(tǒng)變更的工具,必須安裝

brew install watchman

3. 腳手架搭建項目模板

react-native init rnTemplate

默認的rn版本是0.55.3版本刁赦,這里需要做下更改
rn項目中對于版本的匹配要求比較嚴格娶聘,版本報紅的問題多

cd rnTemplate
rm -rf node_modules

package.json中 react-native 修改版本為0.51.0

npm install

4. 啟動項目

啟動項目的方式大致分為兩種,一是命令行甚脉,二是xcode或者as

這里先介紹命令行

命令行如下:

react-native run-ios  // ios
react-native run-android // android

啟動ios:

react-native run-ios
rn啟動之ios.png

當我們用命令行啟動ios的時候丸升,會用xcode啟動ios目錄下面的 xx.xcodeproj文件

項目啟動成功后如下:


ios啟動成功.png

啟動android之前,要先保證電腦開啟了安卓的模擬器或者用安卓真機成功連接了電腦并且開啟了調試模式牺氨,電腦信任狀態(tài)狡耻,而且安卓的要指定sdk,默認會去找環(huán)境變量里面猴凹,這里我在android根目錄下面直接新建了文件local.properties

添加如下:

ndk.dir=/Users/xiao/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/xiao/Library/Android/sdk

啟動android:

react-native run-android

項目啟動成功后如下:


android啟動成功.png

用命令行啟動時夷狰,無論是android或者是ios,都會另起一個命令行工具起啟動最終被原生APP使用的index.bundle文件郊霎,一般是:

localhost:8081/index.bundle?platform=ios(android)

5. 修改腳手架模板

修改模板前大致介紹下腳手架搭建的模板目錄結構


腳手架模板目錄結構.png

兩個文件夾androidios沼头,對應原生安卓和ios
node_modules,項目依賴
.babelrc , babel配置文件书劝,用于轉換js
App.js进倍,項目模板入口,供入口index.js使用
index.js购对, 項目入口
package.json猾昆,依賴配置文件

接著我們根據(jù)開發(fā)實際情況改造目錄

改造后的目錄結構.png

主要改動點,在于新建的src文件夾下面骡苞,同時把模板入口移到了src開發(fā)目錄下面垂蜗,下面是src目錄介紹:

src,開發(fā)目錄
assets解幽,項目資源目錄贴见,存放css, imgs, js
components,存放我們的組件
views亚铁, 存放我們的視圖頁面
App.js蝇刀, 入口模板

6. UI框架進場

目前暫時選擇的是teasetUI框架傳送門

UI框架就不過多介紹了,直接使用

npm install --save teaset

在App.js入口模板中使用

// App.js
import React, {Component} from 'react';
import {
    View
} from 'react-native';
import {TeaNavigator, Theme} from 'teaset';
import Index from './views/index'

Theme.set({fitIPhoneX: true});

export default class App extends Component {
    render() {
        return <TeaNavigator rootView={<Index/>}/>
    }
}

上面設置了項目的主題色配置徘溢,可以根據(jù)項目自行調整

teaset在頁面跳轉上做了很好的封裝吞琐,上面我們引入了indx.js的頁面

// index.js
export default class Index extends NavigationPage {
    renderPage() {
        return (
            <Text>index</Text>
        )
    }
}

index.js不再繼承Component捆探,而是teaset內置的NavigationPage頁面導航組件, 渲染函數(shù)也變成了renderPage

具體的文檔請參考上面的teaset傳送門站粟。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末黍图,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奴烙,更是在濱河造成了極大的恐慌助被,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件切诀,死亡現(xiàn)場離奇詭異揩环,居然都是意外死亡,警方通過查閱死者的電腦和手機幅虑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門丰滑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倒庵,你說我怎么就攤上這事褒墨。” “怎么了擎宝?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵郁妈,是天一觀的道長。 經(jīng)常有香客問我绍申,道長噩咪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任极阅,我火速辦了婚禮剧腻,結果婚禮上,老公的妹妹穿的比我還像新娘涂屁。我一直安慰自己,他們只是感情好灰伟,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布拆又。 她就那樣靜靜地躺著,像睡著了一般栏账。 火紅的嫁衣襯著肌膚如雪帖族。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天挡爵,我揣著相機與錄音竖般,去河邊找鬼。 笑死茶鹃,一個胖子當著我的面吹牛涣雕,可吹牛的內容都是我干的艰亮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挣郭,長吁一口氣:“原來是場噩夢啊……” “哼迄埃!你這毒婦竟也來了?” 一聲冷哼從身側響起兑障,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤侄非,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后流译,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逞怨,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年福澡,在試婚紗的時候發(fā)現(xiàn)自己被綠了叠赦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡竞漾,死狀恐怖眯搭,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情业岁,我是刑警寧澤鳞仙,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站笔时,受9級特大地震影響棍好,放射性物質發(fā)生泄漏。R本人自食惡果不足惜允耿,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一借笙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧较锡,春花似錦业稼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骡楼,卻和暖如春熔号,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸟整。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工引镊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓弟头,卻偏偏與公主長得像吩抓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子亮瓷,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,072評論 25 707
  • React Native學習<一> 認識Recat Native 博客原文:http://www.jianshu....
    AFinalStone閱讀 2,668評論 0 12
  • 1 熱發(fā)布 網(wǎng)頁發(fā)布 VS APP發(fā)布 網(wǎng)頁發(fā)布:服務端上線新的網(wǎng)頁代碼琴拧,用戶端通過鏈接直接訪問。 APP發(fā)布:?...
    kkmoving閱讀 4,083評論 1 15
  • 關于打不打孩子嘱支,我的觀點是:盡量不打蚓胸,該打就打。 就此觀點來說除师,我和妞爸并沒有很大分歧沛膳,分歧只在于是否要保留那個“...
    丑璞閱讀 683評論 0 3
  • 遇見,是一種神奇的安排汛聚,是經(jīng)久不衰的芬芳锹安,也是一切的開始。我們在最值得尊重的生命面前倚舀,回歸人性叹哭,溫暖如初。 ...
    重癥醫(yī)學科閱讀 526評論 0 0