Hybrid開發(fā)-React Native

先說結(jié)論

React Native實(shí)際上是一種Hybrid開發(fā)方式售淡。
理論上,RN可以在跨平臺(tái)的基礎(chǔ)上系瓢。解決開發(fā)中的任何問題阿纤、達(dá)到和native一樣的效果。
但前提是夷陋。開發(fā)人員至少要完全熟悉React框架欠拾。以及iOS、Android端的Native代碼骗绕。
在有人很hold主RN的整體系統(tǒng)的前提下藐窄。業(yè)務(wù)開發(fā)人員是可以舒服的開發(fā)RN代碼的。

RN大略

? ? 移動(dòng)端開發(fā)酬土。大家很少使用H5實(shí)現(xiàn)主路徑功能的原因是荆忍。H5的交互體驗(yàn)略差。但H5有一個(gè)優(yōu)勢(shì),就是它是跨平臺(tái)的刹枉。所以就有人想讓native和js結(jié)合叽唱。達(dá)到既能有很好的使用體驗(yàn)。又能跨平臺(tái)微宝。這就是RN產(chǎn)生的原因棺亭。
? ? 但真的能做到性能與跨平臺(tái)兼有嗎?JavaScript的運(yùn)行環(huán)境是串行的蟋软。一旦串行中有阻塞侦铜,就會(huì)造成卡頓。就應(yīng)該放到native中實(shí)現(xiàn)钟鸵。所以結(jié)論就是耗性能的操作應(yīng)該放到native中實(shí)現(xiàn)钉稍,其他的操作可以用javascript實(shí)現(xiàn)。
? ? 令一個(gè)解決js性能問題的方案是棺耍。在native另開一個(gè)js環(huán)境贡未。在另外的線程運(yùn)行js代碼。結(jié)果回傳到原來的js context里面蒙袍。類似的開源庫是react-native-threads這種方式可能造成內(nèi)存問題俊卤。

業(yè)務(wù)開發(fā)人員的舒適度
? ? javascript語言是弱類型。用來開發(fā)單頁面的web端害幅。代碼量不會(huì)很高消恍。問題不是很大。但如果用到RN開發(fā)以现,會(huì)很吃力狠怨。因?yàn)殚_發(fā)人員會(huì)經(jīng)常調(diào)用未知的接口。接口的參數(shù)數(shù)量邑遏、接口的參數(shù)類型佣赖、參數(shù)如果是對(duì)象的話、對(duì)象的結(jié)構(gòu)记盒。都不知道憎蛤。這會(huì)是非常痛苦的。
? ? 解決js弱類型的方法是在js的語法基礎(chǔ)上纪吮,增加類型檢查語法俩檬。目前的方案有兩種。

flow+babel:這個(gè)方式也是RN自帶的方式碾盟。flow負(fù)責(zé)靜態(tài)語法檢查棚辽、babel負(fù)責(zé)編譯js,將檢查語法去掉巷疼。但Facebook并沒有將flow做的足夠貼心晚胡。導(dǎo)致各種小bug。包括斷點(diǎn)調(diào)試嚼沿,斷點(diǎn)不生效估盘。斷點(diǎn)的位置不準(zhǔn)確等問題。同時(shí)開發(fā)人員需要一個(gè)用著順手的IDE骡尽。atom和flow集成后的使用體驗(yàn)并不好遣妥。VSCode集成flow體驗(yàn)還不錯(cuò)。

TypeScript:這是微軟開發(fā)的開源語言攀细。雖然很多人都不喜歡微軟箫踩。但TypeScript集成VSCode是真心好用。安裝React Native Tools插件后谭贪。開發(fā)體驗(yàn)和傳統(tǒng)IDE沒有區(qū)別境钟。debug、斷點(diǎn)俭识、查看聲明慨削、語法檢查與提示樣樣貼心!
這里有一個(gè)需要注意的點(diǎn)套媚。因?yàn)镽N本身是一flow語法為主的缚态。其他的第三方庫是以js為主的。這里如果需要依賴js庫堤瘤。就需要d.ts文件玫芦。這個(gè)文件往往都是現(xiàn)成的。如果是自己的js庫本辐,就需要使用命令生成d.ts文件桥帆。可參考這里慎皱。
? ? 關(guān)于TypeScript+RN的配置环葵。在這里
總體來說宝冕,TypeScript+VSCode+React NativeTools+RN张遭,是真心好用。但有大牛能hold住RN整個(gè)系統(tǒng)的前提下地梨。生產(chǎn)環(huán)境下使用是絕對(duì)沒有問題的菊卷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宝剖,隨后出現(xiàn)的幾起案子洁闰,更是在濱河造成了極大的恐慌,老刑警劉巖万细,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扑眉,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腰素,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門聘裁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弓千,你說我怎么就攤上這事衡便。” “怎么了洋访?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵镣陕,是天一觀的道長。 經(jīng)常有香客問我姻政,道長呆抑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任汁展,我火速辦了婚禮理肺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘善镰。我一直安慰自己妹萨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布炫欺。 她就那樣靜靜地躺著乎完,像睡著了一般。 火紅的嫁衣襯著肌膚如雪品洛。 梳的紋絲不亂的頭發(fā)上树姨,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音桥状,去河邊找鬼帽揪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辅斟,可吹牛的內(nèi)容都是我干的转晰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼士飒,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼查邢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酵幕,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤扰藕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后芳撒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邓深,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡未桥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芥备。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冬耿。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖门躯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酷师,我是刑警寧澤讶凉,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站山孔,受9級(jí)特大地震影響懂讯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜台颠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一褐望、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧串前,春花似錦瘫里、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坛吁,卻和暖如春劳殖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拨脉。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工哆姻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玫膀。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓矛缨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親帖旨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劳景,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345