ReactNative是一款移動(dòng)開(kāi)發(fā)工具,可以基于目前大熱的開(kāi)源JavaScript庫(kù)React.js來(lái)開(kāi)發(fā)iOS和Android原生App,而且React Native已經(jīng)用于生產(chǎn)環(huán)境!
功能介紹
React Native的原理是在JavaScript中用React抽象操作系統(tǒng)原生的UI組件,代替DOM元素來(lái)渲染,比如以取代,以替代等。
在幕后,React Native在主線程之外,在另一個(gè)背景線程里運(yùn)行JavaScript引擎,兩個(gè)線程之間通過(guò)一批量化的async消息協(xié)議來(lái)通信(有一個(gè)專(zhuān)門(mén)的React插件)。
UI方面React Native提供跨平臺(tái)的類(lèi)似Flexbox的布局系統(tǒng),還支持CSS子集??梢杂肑SX或者普通JavaScript語(yǔ)言,還有CoffeeScript和TypeScript來(lái)開(kāi)發(fā)。有評(píng)論說(shuō),React的UI層模型要比UIKit好很多。
更好的是,由于基于Web技術(shù),開(kāi)發(fā)起來(lái)可以像在瀏覽器里那樣隨時(shí)在仿真程序中查看應(yīng)用運(yùn)行情況,刷新一下就行,無(wú)需編譯,爽吧。
React Native比起標(biāo)準(zhǔn)Web開(kāi)發(fā)或原生開(kāi)發(fā)能夠帶來(lái)的三大好處:
1、手勢(shì)識(shí)別:基于Web技術(shù)(HTML5/JavaScript)構(gòu)建的移動(dòng)應(yīng)用經(jīng)常被抱怨缺乏及時(shí)響應(yīng)。而基于原生UI的React Native能避免這些問(wèn)題從而實(shí)現(xiàn)實(shí)時(shí)響應(yīng)。
2、原生組件:使用HTML5/JavaScript實(shí)現(xiàn)的組件比起原生組件總是讓人感覺(jué)差一截,而React Native由于采用了原生UI組件自然沒(méi)有此問(wèn)題。
3、樣式和布局:iOS、Android和基于Web的應(yīng)用各自有不同的樣式和布局機(jī)制。React Native通過(guò)一個(gè)基于FlexBox的布局引擎在所有移動(dòng)平臺(tái)上實(shí)現(xiàn)了一致的跨平臺(tái)樣式和布局方案。