官方解釋: 使用 Taro,我們可以只書寫一套代碼,再通過 Taro 的編譯工具,將源代碼分別編譯出可以在不同端(微信/百度/支付寶/字節(jié)跳動(dòng)小程序、H5、React-Native 等)運(yùn)行的代碼。
使用前
第一次看到Taro是在github搜索React插件時(shí)看到(個(gè)人習(xí)慣,有時(shí)候會(huì)去搜索一個(gè)語(yǔ)言的插件在GitHub再按照Star排名,看看各個(gè)插件功能,后期開發(fā)時(shí)用到這功能有個(gè)印象),感覺挺好的插件,以后開發(fā)小程序和快應(yīng)用應(yīng)該用的到,因?yàn)樗苯邮褂胷eact可以開發(fā)多端,相比于去看各個(gè)廠家小程序開發(fā)文檔,使用Taro幾乎沒有學(xué)習(xí)成本。
為什么要了解它
這次使用它開發(fā)一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)南瓜棋,小時(shí)候玩的一個(gè)游戲,邏輯還是比較簡(jiǎn)單的,主要是去了解下Taro優(yōu)缺點(diǎn),以后開發(fā)公司簡(jiǎn)單小程序、快應(yīng)用等做好準(zhǔn)備,主要是了解他的局限性。
開發(fā)感受
具體看文檔,我簡(jiǎn)單說下感受,我的前端水平:簡(jiǎn)單的HTML、CSS了解復(fù)雜的網(wǎng)頁(yè)不會(huì)(動(dòng)畫啥的還得看文檔),React-Native水平應(yīng)該還是不錯(cuò),主流的React-Native框架都會(huì)搭建,開發(fā),原生調(diào)試,編寫沒問題,ES6沒問題。React看了2周吧,入門。這個(gè)Taro,直接寫按照文檔走,沒出現(xiàn)問題。
缺點(diǎn)
- 由于之前大段時(shí)間開發(fā)RN的所以開發(fā)時(shí)直接使用style={styles.你的}這種開發(fā),開發(fā)完H5時(shí),打算運(yùn)行在小程序上發(fā)現(xiàn)尷尬了,樣式全亂了,后面給尺寸加px。
- 用Mobx在store里面有個(gè)方法我命名onChessGo,H5運(yùn)行沒問題,小程序不行,排查了一段時(shí)間發(fā)現(xiàn)微信小程序里的Mobx->store方法不能已on開頭,這個(gè)要注意。
- 好像暫時(shí)是不能引用三方UI庫(kù)的和UI組件庫(kù)的,這和Taro功能有關(guān),可能一個(gè)小程序的庫(kù)肯定不能用在React-Native,這個(gè)缺陷會(huì)加大開發(fā)復(fù)雜頁(yè)面的時(shí)間,可能對(duì)于原生(各個(gè)小程序新功能)新功能支持可能也不會(huì)太及時(shí),由于頁(yè)面簡(jiǎn)單,了解時(shí)間端更多的缺陷也沒有看到。
- return tsx時(shí)在非render里面是不能運(yùn)行的在微信小程序里,H5沒問題。
優(yōu)點(diǎn)
- 快速開發(fā)各端的應(yīng)用,不需要任何學(xué)習(xí)成本(我這前端小白都直接開寫),還提供各個(gè)應(yīng)用的原生功能的接口方便用戶調(diào)用。
- 確實(shí)可以多端打包,親測(cè)有效,但演示和一些細(xì)節(jié)要注意了。
- Taro自己開發(fā)了一個(gè)UI庫(kù)(Taro-ui)滿足了大部分的組件需求,最后最重要的一點(diǎn)是個(gè)人認(rèn)為大多數(shù)小程序、H5、快應(yīng)用都是用于引流或者簡(jiǎn)單功能開發(fā),這些功能開發(fā)Taro應(yīng)該都可以滿足,還有就是時(shí)間和人力成本Taro也是有優(yōu)勢(shì)。
應(yīng)用南瓜棋
H5截圖
微信小程序截圖
支付寶小程序截圖
今日頭條小程序截圖
代碼注意事項(xiàng)
- 由于之前以為在H5上運(yùn)行,其他地方樣式就一樣,可是后面發(fā)現(xiàn)不行,所以樣式用的內(nèi)聯(lián)樣式,建議大家用css、less、scss這樣H5和其他端樣式應(yīng)該一樣。
- 有些命名不能用例如Mobx里store里的方法@action不能以on開發(fā),微信小程序就調(diào)不懂。
- 今日頭條小程序打包后有問題確實(shí)了project.config.json,反正我這邊編譯后導(dǎo)入不了,我新建了一個(gè)project.config.json復(fù)制過去,可能是這個(gè)原因?qū)е孪旅娴腢I不見了。
- 我這邊測(cè)試來(lái)了正常: H5、微信小程序、支付寶小程序,編譯后缺少東西但可以運(yùn)行:今日頭條小程序,其他的沒測(cè)試太耗時(shí)。