從昨天調(diào)研了前端幾個時下最流行的框架之后掏婶,我發(fā)現(xiàn)我對React Native的理念是越來越佩服添诉。
上層DSL通過transformer 編譯成virtucal dom摧莽,再將virtual dom映射到原生組件中。所以RN App并不是依托于webview渲染的陨界,它是使用原生組件渲染的巡揍,難怪其性能差不多可以媲美原生。
同時還聽說microsoft 準(zhǔn)備推出RN for windows菌瘪,屆時腮敌,RN不僅跨Android,IOS端,設(shè)置可以用來寫任何運行windows 10的設(shè)備的應(yīng)用,包括PC糜工,xbox等弊添。
正好最近想做一個React的個人項目,干脆就嘗試先React Native吧捌木。
遵循古人的先例油坝,學(xué)習(xí)一門新語言新框架,應(yīng)該先寫個hello world钮莲。
什么是Expo免钻?
Expo 是一個用來打包React Native項目,生成Android和IOS安裝包的工具崔拥。它甚至不需要我們擁有Android studio 和XCode ,就可以在云端幫我們生成安裝包极舔。Expo 提供對應(yīng)的SDK來抹平兩端的原生Api的差異,使我們前端工程師只需要關(guān)注javascript代碼就可以链瓦。但是Expo SDK并不提供所有原生Api的接口拆魏,如果你的App需要某些自定義的原生功能,那么你就必須得擴(kuò)展React Native慈俯。
Expo 提供了expo eject 命令行來讓你的expo project 回退到兩個android studio 和 XCode工程渤刃。此時,你之前所寫的javascript代碼依然有用贴膘,因為eject生成的這兩個工程都回依賴于React Native 和 Expo SDK卖子, 只不過不必須得使用原生的方式,而不是云端來生成二進(jìn)制文件了刑峡。
參照Expo 官方的指引洋闽,我們通過以下步驟就可以快速創(chuàng)建我們的hello world 工程了。
npm i -g expo-cli
expo init appproject
cd appproject
npm start
expo build:android
如何在手機(jī)端預(yù)覽
- 下載Expo apk到手機(jī)上
- 確保手機(jī)和開發(fā)設(shè)備在同一局域網(wǎng)
- 執(zhí)行npm start后突梦,用expo軟件掃描二維碼鏈接诫舅,即可實時查看app 界面,并且響應(yīng)改變宫患。