震驚!Expo全家桶竟然能這樣了

Expo團隊就在剛剛 (2019/3/1) 發佈了一篇關於Expo更新的文章,咱們來快速剖析一下Expo帶來的新內容吧。react

Expo的兩種工做模式

在介紹新內容以前,咱們先來看一下Expo現有的兩種工做模式npm

Managed

Managed模式是由expo-cli生成的,其中自帶了完整的Expo SDK,也就是你們最喜歡的Expo全家桶Expo全家桶爲react native應用開發、調試、發佈流程作了極大的簡化,也是新手玩家的不二之選。react-native

Bare

Bare模式帶來了更高的可控性(Native層的自定義,選擇性引入Expo SDK...),固然這種可控性對開發者帶來的也就是更復雜的開發體驗,對開發者的技能知識要求相對較高。api

Unimodules

Unimodules是本次更新帶來的最大內容,用一句話來講就是經過unimodules,咱們能夠在原生react-native應用開發中引入Expo的API。這樣能帶來什麼好處呢?app

  1. 經過react-native init生成的純淨react native應用可使用Expo的API
  2. 經過Expo工具鏈開發的應用能夠更加無縫地轉化成react native應用
  3. 經過Unimodules的拆分,Expo給了開發者選擇引入API,下降Expo應用體積的能力
  4. unimodules輸出的包通用性極高,甚至能夠被Flutter所使用

經過上面簡單的好處描述就能夠看出來,Expo的野心不單單是想讓react native開發者使用Expo的某些API這麼簡單,Expo的Unimodule歸根結底是想定義的一種業內的Native Module的統一開發 / 輸出標準,實現Native Module的大一統。工具

Expo的下一步

還記得使人厭惡的Native Module的倒入過程嗎?修改客戶端代碼對於react native開發者來講是一個極大的挑戰,簡簡單單裝個包動不動一天就過去了。在下一個版本中unimodules將完全抹平這一步,只要npm install,只要npm install,只要npm install,就足夠了。調試

小結

咱們能夠看到的是Expo在逐步地拆分本身的能力,讓用戶去逐一選擇他們所須要Expo所提供的內容,而不是像某些產品上來就給你套一個全家桶,不用全家桶啥都不能用的強盜邏輯。咱們暫且不去論述這個選擇對於Expo自己做爲一個產品的好處壞處,但對於開發者這必定是一件極好的事情。十分期待Expo在將來給react native開發賦予的新能力、新內容。code

關於如何使用unimodules與原文

You can now use Expo APIs in any React Native appcdn

相關文章
相關標籤/搜索