大家好呀!近在折騰React開(kāi)發(fā)微信小程序,感覺(jué)挺有意思的,就想著跟大家嘮嘮嗑,分享一下我的體驗(yàn),順便記錄一下踩過(guò)的坑,免得大家也跟著我一起掉坑里。畢竟,誰(shuí)也不想浪費(fèi)時(shí)間在那些讓人抓狂的bug上,對(duì)吧?
一開(kāi)始接觸React開(kāi)發(fā)小程序,我反應(yīng)是:哇,這也太酷了吧!之前用原生小程序開(kāi)發(fā),感覺(jué)代碼寫(xiě)起來(lái)又臭又長(zhǎng),各種邏輯嵌套得我頭都大了?,F(xiàn)在用React,感覺(jué)就像回到了熟悉的懷抱,組件化開(kāi)發(fā),代碼復(fù)用,爽歪歪!
不過(guò),話雖這么說(shuō),上手的時(shí)候還是遇到了一些小得選個(gè)框架?,F(xiàn)在市面上比較流行的有Taro和Remax,我個(gè)人比較喜歡Taro,因?yàn)樗鲜直容^容易,文檔也比較完善,對(duì)React開(kāi)發(fā)者非常友好。
搭建項(xiàng)目的過(guò)程其實(shí)很簡(jiǎn)單,按照Taro的官方文檔一步一步來(lái)就行,就像搭積木一樣,很快就能把項(xiàng)目搭建起來(lái)。然后,就可以在微信開(kāi)發(fā)者工具里預(yù)覽啦!看到自己寫(xiě)的代碼變成真真切切的小程序,那感覺(jué),妙不可言!
當(dāng)然,開(kāi)發(fā)過(guò)程中也有一些坑。比如,自定義Tabbar,這玩意兒看起來(lái)簡(jiǎn)單,做起來(lái)卻有點(diǎn)費(fèi)勁。我一開(kāi)始嘗試自己寫(xiě),結(jié)果發(fā)現(xiàn)各種樣式兼容性搞得我頭昏腦脹。后來(lái),我找到了一個(gè)比較靠譜的解決方案,就是用Taro提供的API,直接搞定,省時(shí)省力,簡(jiǎn)直不要太爽!
React Hooks也是個(gè)好東西,用起來(lái)很方便,能讓我們更好地管理組件狀態(tài)。不過(guò),在小程序環(huán)境下,有些Hooks可能用起來(lái)會(huì)有點(diǎn)不一樣,需要多加注意。比如,useEffect的執(zhí)行時(shí)機(jī),在小程序環(huán)境下可能跟在React Web環(huán)境下不太一樣,需要注意一下。
用React開(kāi)發(fā)微信小程序,效率提升了不少。以前用原生小程序開(kāi)發(fā),寫(xiě)個(gè)頁(yè)面可能需要半天時(shí)間,現(xiàn)在用React,同樣的頁(yè)面,可能幾個(gè)小時(shí)就搞定了。這時(shí)間省下來(lái),我都可以去打幾局游戲了,想想都開(kāi)心!
接下來(lái),我想跟大家分享一下我的開(kāi)發(fā)經(jīng)驗(yàn),以及一些我覺(jué)得比較重要的點(diǎn):
| 方面 | 原生小程序 | React + Taro |
|---|---|---|
| 學(xué)習(xí)成本 | 較高,需要學(xué)習(xí)小程序的語(yǔ)法和API | 較低,如果熟悉React,上手很快 |
| 開(kāi)發(fā)效率 | 較低,代碼冗余較多 | 較高,組件化開(kāi)發(fā),代碼復(fù)用性強(qiáng) |
| 代碼維護(hù)性 | 較低,代碼結(jié)構(gòu)復(fù)雜,難以維護(hù) | 較高,代碼結(jié)構(gòu)清晰,易于維護(hù) |
| 社區(qū)支持 | 較好,官方文檔和社區(qū)資源豐富 | 較好,Taro社區(qū)活躍,問(wèn)題解決速度快 |
| 性能 | 較好,原生小程序性能優(yōu)化較好 | 較好,Taro對(duì)性能進(jìn)行了優(yōu)化,基本能滿足需求 |
| 適用場(chǎng)景 | 對(duì)性能要求較高的小程序,或者一些復(fù)雜的業(yè)務(wù)邏輯 | 大多數(shù)小程序開(kāi)發(fā)場(chǎng)景,尤其是中小型項(xiàng)目 |
當(dāng)然,這只是我個(gè)人的一些經(jīng)驗(yàn),具體選擇哪種方式,還得根據(jù)實(shí)際情況來(lái)定。如果你的項(xiàng)目比較簡(jiǎn)單,時(shí)間比較緊迫,那么React + Taro是個(gè)不錯(cuò)的選擇。如果你對(duì)性能要求很高,或者項(xiàng)目非常復(fù)雜,那么原生小程序可能更適合你。
我想再?gòu)?qiáng)調(diào)一點(diǎn),那就是文檔的重要性!不管是Taro的文檔,還是微信小程序的文檔,一定要認(rèn)真閱讀,多看幾遍,多實(shí)踐。很多其實(shí)文檔里都有答案,只是我們自己沒(méi)注意到而已。
好了,今天就嘮嗑到這里吧。希望我的分享能幫到大家。大家在用React開(kāi)發(fā)微信小程序的過(guò)程中,有沒(méi)有遇到什么有趣的事情或者棘手的問(wèn)題呢?歡迎一起交流討論,互相學(xué)習(xí),共同進(jìn)步!讓我們一起輕松愉快的開(kāi)發(fā)小程序,早日實(shí)現(xiàn)小程序自由!