最近學(xué)習(xí)了下react-native浪腐,也使用它做了半個應(yīng)用,這里簡單地記錄下一些心得顿乒。
不易上手
react-native對外宣稱“Learn once, write anywhere”议街,這個口號與我們平常見到的各種游戲引擎標(biāo)榜自己跨平臺完全平一樣。這里的Learn once是指我們需要系統(tǒng)地學(xué)習(xí)react-native璧榄,那么react-native的學(xué)習(xí)曲線是平滑還是陡峭呢特漩?就本人的親身體會來說吧雹,學(xué)習(xí)起來還是比較困難的:
react-native是由前端框架react發(fā)展而來的,它的主要目標(biāo)就是用前端來開發(fā)移動端應(yīng)用涂身,不可避免的帶有著前端開發(fā)人員的思維邏輯雄卷。對于前端人員來說,學(xué)習(xí)react-native就像是隨手換了下工具蛤售,工具的外形可能跟以前稍有不同丁鹉,但它的使用方式還是以前那一套,因此能夠很快地達(dá)到得心應(yīng)手的程度悴能。但對于移動端轉(zhuǎn)型而來的開發(fā)者來說揣钦,就像由windows換到mac系統(tǒng)一樣,到處都充斥著不適應(yīng)漠酿。
資料較少
react-native也是最近兩三年發(fā)展起來了拂盯,坑填的差不多了,但依然可能碰到一些沒填上的坑记靡。中文資料較少谈竿,https://reactnative.cn 上的文檔太簡單,比如Navigation摸吠,短短的一頁居然介紹了React Navigation與NavigationIOS兩種導(dǎo)航方式空凸。這篇doc中對我最有用的絕對是《開發(fā)環(huán)境搭建》這一篇了,其余的都只能做為參考了解下而已寸痢。
MVC中的V
網(wǎng)上很多人認(rèn)為因為react-native及week的出現(xiàn)呀洲,移動端被前端取代是遲早的事,包括我自己也這樣認(rèn)為啼止,并感到一定程度的憂慮道逗。不過在我使用了react-native一段時間后,這種想法就不在那么強(qiáng)烈了献烦。react-native的愿景是用前端來寫移動端應(yīng)用滓窍,但現(xiàn)在看來也只是邁出了第一步而已,離達(dá)成還有很長的一段時間巩那。
是的吏夯,使用react-native的確可以比較快速的開發(fā)出一些用戶交互較為頻繁的應(yīng)用,這是將前端的UI布局靈活的特點充分發(fā)揮出來而已即横。而涉及到與硬件交互噪生,邏輯比較復(fù)雜的功能開發(fā),這些都是移動端的優(yōu)勢地盤东囚,前端想攻略下來還需要花費更長的時間跺嗽。
react-native將原生模塊封裝成開發(fā)者可以使用的前端模塊,開發(fā)者可以使用前端代碼對UI界面進(jìn)行布局并處理用戶的交互。這些工作以前是由原生側(cè)MVC模式中的V來做的桨嫁,也就是說react-native取代了V植兰,但對于余下的兩個模擬依然沒有順利地接手。
平臺差異
因react-native對于原生模塊的復(fù)用瞧甩,導(dǎo)致了控件的平臺差異性:NavigationIOS只適用于iOS平臺钉跷、控件的某些屬性只針對單一平臺弥鹦。
UI布局方便
原生開發(fā)布局iOS要關(guān)注一個控件相對于其它控件的上下左右約束條件肚逸,并精確定位其尺度。而使用react-native布局界面彬坏,將屏幕分割成不同大小的模塊朦促,然后將對應(yīng)的View填進(jìn)就可以了。
上面列舉了一些我這些天使用react-native的初步印象栓始,后面會更新使用的具體細(xì)節(jié)問題务冕。希望在應(yīng)用開發(fā)完畢時,也能夠完全的掌握react-native幻赚。