React-Native 填坑記錄

最近在弄一個app的框架的調研,小公司,希望的學習成本低的框架,最後選擇react-native。框架很厲害:Facebook開源,這個框架的家世還是可以的。兼容android,ios。支持ws,xmlhttprequest,fetch。有很多豐富的第三方UI庫,antd-mobile以及react-native-elements 等等等,學習成本低,再也不需要考慮跨平臺的各種問題,如android,ios的學習成本幾乎爲0,開發調試的話也很舒服。編輯器什麼的都很好。只需要會JavaScript,就可以開發一款移動應用。如果對第三方庫熟悉,開發一個簡單應用的UI的話,我只能用兩個字描述=====“”很快“”。

最後奉上一句:不愧是大Facebook開源的流弊的東西,從此征服android,ios不是難事。哈哈哈。

1、expo框架(這是一個傳奇的框架,能夠讓我們不用寫native code就可以開發應用,但是也是一個坑坑的東西,當我們真的不需要寫native code,也不需要native Library的時候,請選擇這個框架,強烈支持選擇這個框架,當我們需要native code 和native library的時候,強烈建議和這個框架say goodbye):

框架的理念很好,包括CRNA都應用了這個框架,當然對於正常的非常normal的開發的時候,這個框架就像一個神器一樣,讓我們不用寫本地代碼,android和ios的代碼就可以實現很多的功能。

但是============》經過本人親自踩坑,當我們確確實實需要 native code的時候,一個恐怖的事情發生了。npm run eject++然而最終我們生成的東西除了將expo的框架包含進來了,還將我們熟悉的react-native給替換掉了。

使用CRNA開發的話可以不需要使用native code

而這個expo=======================》對於我們開發而言,提供了很多很好的東西,但是真的需要使用的時候,請考慮好,是否是真的不需要本地代碼,當我們需要tcp的時候,當我們需要其他的一些奇奇怪怪的東西的時候,非純頁面開發的時候,可能就需要考慮我們是否真的瞭解這個框架。

有點坑====》

1、文檔有些不全面,很多配置的東西有點讓人沒法理解,2、支持的東西不能夠完全的兼容版本。3、失去了facebook這種腿的支持,能否真的有保障。4、當有一天需要從非native code 到native code 需要做的調整所帶來的未知領域。

====================》最終我選擇拒絕這個API,拒絕這個很好的庫。理念很好,但是代碼寫的太絕對,不夠插件化,我們最希望的是我們提供純的js,但是我們不願意失去改變native code 的理由,我們也不願意失去我們最熟悉的東西。最終我選擇放棄這個expo api,如果有一天谷歌或者Facebook支持了,

當然,對於真正的永遠不需要寫本地代碼的,永遠都不可能去涉及到本地框架的,強烈支持選擇這個框架

但是真的要寫本地代碼的時候,抱歉,我可能會選擇react-native-cli,從兼容性和應用第三方native library的角度來講,expo不夠好。當然前提在於你需要兼容native code 和需要使用第三方native library,拒絕是建立在不需要native的基礎上面的,永遠不需要native或者等這個框架足夠好用的時候。

2、react-navigation:對於熟悉react,react-router,history的同學而言,對於這個組件的作用大概就是一見如故,看到了就能明白。對於這個框架的實現是怎麼樣,sorry我沒有仔細的研究了,這是一個和react-router同樣流弊的東西,同樣好用的東西。文檔實例齊全,對於小白而言,上手很快很快,so soon。

3、react-native自帶的組件,如官網所示,就那麼多了,下載下來也就那麼幾個了。

有了上面的東西,其實頁面開發就可以開始了,很多美好的故事就這樣誕生了。後面的都是錦上添花的東西。

4、react-native-charts-wrapper這是一個功能極其強大,圖表極其美觀的一個第三方開源的圖表框架,能夠做出很多很好看的圖標,色彩鮮豔,非常美觀,如此神器,你值得擁有。


1、antd mobile 螞蟻開發你值得擁有,爲什麼選擇你,其實很簡單?用起來容易,家世出身高人一等,哪怕有無數的框架擺在我的面前,提到這個的家世,那就是你了,大公司維護的比較可靠。和expo可能會有一些差異,expo小門小戶,怕是不夠和antd mobile一起相提並論。其他的一些開源的框架有很好用的和螞蟻的這一套也沒什麼區別了,螞蟻實現不了的他們也大概就這樣了,這就是家世好決定了框架的未來和命運的原因哈。當然這套框架有兩個版本,分別對應 react 和react-native,對應DOM(BOM)和移動端,實現方式應該是有區別的但是,簡單好用都是共性,實力強大也是共性


需要注意的東西:

React更新了,大改動。。。。。。。。。。。。。。。。。。。。。。。。我親愛的同學們,當我們發現我們的頁面刷新的很奇怪的時候,百思不得其解的時候,請點開官網文檔,請點開源代碼,我們發現Component Lifecycle 裏面有一個deprecated,雖然不知道爲什麼這麼修改,但是既然改了,就重新溫習下文檔,及早做準備。

我們將react-native 跑在node上面,運行的很嗨,發現node真是一個好東西,於是我們就想在react-native上面跑個express,跑個node,對不起,不支持,react-native並不支持nodejs的標準庫


React-Native官方出品的框架中只有三個能夠進行網絡請求的東西,想要用其他的東西的同學敬請慎重,包括ajax的兩個 fetch和xmlhttprequest,和另外一個wssocket。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章