從16年微信小程序内測的(de)時(shí)候到如今,微信小程序用(yòng)時(shí)間與實踐證明(míng)了(le)自己的(de)變革與價值,成都小程序開發的(de)規則也(yě)在開發社區(qū)的(de)影(yǐng)響下(xià)變得(de)更加完善。
對(duì)于第三方企業來(lái)講,微信爲自己帶來(lái)了(le)巨大(dà)的(de)流量入口和(hé)低成本的(de)拉新渠道。像共享單車類的(de)企業,微信是絕大(dà)多(duō)數用(yòng)戶的(de)二維碼掃碼入口,小程序爲其帶來(lái)了(le)巨大(dà)的(de)流量入口,如摩拜單車。
對(duì)于成都小程序開發者來(lái)說,小程序的(de)開發生态不斷地在完善,從最開始的(de)原生框架,到騰訊自己開發類vue規範的(de)wepy,再到美(měi)團開發近vue寫法的(de)mpvue,再到最近O2實驗室剛推出的(de)遵循React規範的(de)Taro。
所有到現在,有多(duō)種開發微信小程序的(de)方式,主要有原生,wepy,mpvue,Taro,4種框架,對(duì)比分(fēn)析也(yě)是在這(zhè)4種方式中。
1 框架對(duì)比與分(fēn)析
面對(duì)4種開發方式,我們到底應該選擇哪種呢(ne)?首先當然是對(duì)各種框架進行對(duì)比分(fēn)析,從開發工具便利上,開發方式上,應用(yòng)狀态管理(lǐ)上,社區(qū)活躍程度上(開源UI庫等)
1.1 開發工具工程化(huà)上
開發工具上:都需要微信開發者工具來(lái)調式,對(duì)于寫代碼的(de)話(huà),尤其我們前端開發來(lái)講,21世紀最有良心的(de)編輯工具無疑是微軟出品的(de)vscode,代碼高(gāo)亮的(de)話(huà),都需要相應的(de)配置,具體怎麽配置,可(kě)以網上搜(或者看各個(gè)開發方式的(de)官方文檔)。
工程化(huà)上: 微信小程序本身對(duì)工程化(huà)幾乎沒有任何的(de)支持,要原生框架支持工程化(huà)的(de)話(huà),需要自己動手搭建很多(duō)工程化(huà)上的(de)東西-他(tā)人(rén)搭建的(de)demo wxapp-redux-starter,wepy有自己的(de)wepy-cli,而mpvue和(hé)taro則很好的(de)支持我們熟悉的(de)webpack靈活定制(像語法檢查,熱(rè)更新等等)
1.2 開發方式上
原生開發:
我們需要全新學習(xí)小程序的(de)抒寫格式,目前版本模闆中支持 slot,但是不支持 npm 包。原生不支持 css 預處理(lǐ)器,但是 vsCode 中 Easy WXLESS 插件可(kě)以将 less 文件自動轉換爲 wxss 文件;
wepy:
我們需要熟悉 vue 和(hé) wepy 兩種語法,支持 slot 組件内容分(fēn)發插槽,支持 npm 包,支持 css 預處理(lǐ)器;
mpvue:
我們需要熟悉 vue ,目前版本(v1.0.13)不支持 slot ,支持 npm 包,支持 css 預處理(lǐ)器;
taro:
采用(yòng)React語法标準,支持 JSX 書(shū)寫,讓代碼更具表現性,Taro暫不支持直接渲染children。
對(duì)于mpvue和(hé)taro開發方式上,對(duì)vue和(hé)react語法的(de)支持程度和(hé)差異上具體可(kě)以看各自的(de)官方文檔。
1.3 應用(yòng)狀态管理(lǐ)上
原生開發:
沒有提供原生的(de)應用(yòng)狀态管理(lǐ)方式,但是可(kě)以将 redux or mobx 引入到項目中。
小程序原生提供了(le)一種聲明(míng)使用(yòng)全局變量,具體寫法可(kě)查看文件作用(yòng)域。
wepy:
可(kě)以将 redux or mobx 引入到項目中。
mpvue:
可(kě)以直接使用(yòng) vuex 做(zuò)應用(yòng)狀态管理(lǐ),在用(yòng)mpvue初始化(huà)時(shí)可(kě)以選擇是否需要vuex.
taro:
支持redux,對(duì)于不那麽大(dà)的(de)應用(yòng)也(yě)提供了(le)全局變量的(de)解決方式,redux引入和(hé)全局變量解決方式,具體可(kě)以查看官網-使用(yòng)redux。
1.4 社區(qū)活躍程度上
原生開發:
成都小程序開發對(duì)UI庫來(lái)說,原生小程序UI庫還(hái)是蠻多(duō)的(de),例如易擴展的(de)微信小程序 UI 庫。
其它3個(gè)框架:
對(duì)于wepy,mpvue,taro這(zhè)種開源項目來(lái)說,想學習(xí)交流那肯定是在github的(de)issue上啊,github上的(de)star數和(hé)項目出現時(shí)間成正比,wepy : 12k多(duō)star, mpvue: 11k多(duō)star, taro: 6k多(duō)star,從趨勢看,mpvue大(dà)有趕超wepy的(de)趨勢。
對(duì)于wepy,mpvue它們的(de)github上都有些開源的(de)UI庫,而taro由于最近推出,UI需要自己去撸。