入職新公司昔善,上班第一天就開始接觸公司的產(chǎn)品項(xiàng)目。之前項(xiàng)目是由一位后端大佬寫的人柿,因?yàn)橐獙懝娞?hào)和小程序柴墩,所有當(dāng)初選技術(shù)的時(shí)候他們就選用Taro。上班第一天凫岖,就接手了這個(gè)項(xiàng)目江咳,開始學(xué)習(xí)Taro框架。
Taro它是基于React語(yǔ)法開發(fā)的哥放,熟悉React的同學(xué)用起來是毫無(wú)壓力的歼指。它的組件化思想,組件生命周期與React保持一直甥雕,也支持JSX語(yǔ)法規(guī)范踩身。反正我是不會(huì)JSX語(yǔ)法的,所以前期用起來還是有點(diǎn)吃力社露。它的開發(fā)團(tuán)隊(duì)是由京東的凹凸實(shí)驗(yàn)室研發(fā)的挟阻,至于為什么叫Taro,團(tuán)隊(duì)負(fù)責(zé)人說:他們以怪獸的名字起的峭弟,因?yàn)樗麄兪前纪?奧特曼)實(shí)驗(yàn)室附鸽,而第一個(gè)奧特曼是泰羅,所以他們給實(shí)驗(yàn)室研發(fā)的第一個(gè)技術(shù)框架起名Taro瞒瘸。ps:那后面會(huì)不會(huì)有賽文坷备、艾斯、迪迦挨务?80击你、90集體回憶啊
目前最新的Taro版本已經(jīng)升級(jí)到1.3玉组,版本更新也很快谎柄。也有著很好的生態(tài)圈,社區(qū)現(xiàn)在也很活躍惯雳。組件方面朝巫,也開發(fā)Taro UI組件,生態(tài)還是很完善的石景。Taro的安裝和使用我會(huì)在其他文章說明
不得不說劈猿,接手別人寫一半的項(xiàng)目是真的很難受拙吉,尤其是這種沒用過的技術(shù)。前幾天什么都不會(huì)揪荣,看著項(xiàng)目結(jié)構(gòu)都有點(diǎn)懵逼筷黔,還好旁邊老哥肯教,有什么不會(huì)的直接就告訴你≌叹保現(xiàn)在馬馬虎虎會(huì)寫點(diǎn)東西了佛舱,也談不上熟練。剛開始公司看中這個(gè)框架挨决,是看中它的一個(gè)多端統(tǒng)一開發(fā)功能请祖。也就是說,用它編寫一套代碼脖祈,可以在多個(gè)平臺(tái)運(yùn)行肆捕。Taro可以支持微信小程序、H5盖高、百度小程序慎陵、支付寶小程序、快應(yīng)用或舞、ReactNative荆姆、字節(jié)跳動(dòng)小程序、QQ 輕應(yīng)用映凳。老板覺得胆筒,我寫一套代碼可以編譯生成多端,那以后維護(hù)只用維護(hù)一套代碼就好了诈豌,所以就選擇這個(gè)框架仆救。
選擇它還有個(gè)原因,它支持小程序和Taro的雙向轉(zhuǎn)換矫渔。公司產(chǎn)品之前是只有小程序的彤蔽,后來應(yīng)為業(yè)務(wù)上的需要,要開發(fā)公眾號(hào)庙洼,整個(gè)產(chǎn)品也要添加新功能模塊顿痪。在我接手項(xiàng)目的時(shí)候,后端老哥已經(jīng)吧小程序的大部分功能都寫完了油够,留了一堆頁(yè)面樣式讓我調(diào)整蚁袭。剛開始我也覺得這個(gè)框架很不錯(cuò),后期維護(hù)只用維護(hù)一套就行石咬】模可當(dāng)我開發(fā)公眾號(hào)的時(shí)候,問題就來了鬼悠。
Taro可以支持編譯多端删性,但是對(duì)每個(gè)的API支持程度不一樣亏娜。個(gè)人覺得它對(duì)小程序的API支持是最好的,相對(duì)其他的API支持就不是很好蹬挺。不過它有環(huán)境判斷機(jī)制维贺,判斷當(dāng)前環(huán)境是小程序還是h5。所以當(dāng)API支持不是很好的時(shí)候巴帮,你就得重新想辦法幸缕。
印象最深的是在寫公眾號(hào)的時(shí)候,需要調(diào)用微信的JSSDK晰韵。小程序內(nèi)部有API可以調(diào)用发乔,但是其它環(huán)境下就得調(diào)用第三方的SDK。這無(wú)疑給編寫難度增加了雪猪。你一套邏輯栏尚,在小程序是完美執(zhí)行,可還要兼容到其他端只恨。而且沒個(gè)端的業(yè)務(wù)實(shí)現(xiàn)邏輯也不一樣译仗,在編寫的時(shí)候很傷腦袋。
還有一點(diǎn)我碰到的官觅,每個(gè)端編譯生成的DOM結(jié)構(gòu)不一樣纵菌。我用的是官方的Taro UI庫(kù),在編譯完后部分組件的DOM結(jié)構(gòu)不一樣休涤。以至于在樣式調(diào)整的時(shí)候咱圆,不知道如何下手。
總的來說功氨,Taro多端編譯是現(xiàn)在新崛起的一種技術(shù)序苏。只不過是出現(xiàn)時(shí)間短,還有很多問題需要他們解決捷凄。而京東開發(fā)團(tuán)隊(duì)也在積極的維護(hù)忱详,不斷的升級(jí)更新版本,努力的兼容各個(gè)終端跺涤,讓開發(fā)變得更容易匈睁。
更多文章訪問個(gè)人博客:http://www.lfanliu.top