滴滴 WebApp 團隊近日宣布開源Mpx ,這是一款致力于提高小程序開發(fā)體驗的增強型小程序框架。通過 Mpx ,開發(fā)者能夠以最先進的 web 開發(fā)體驗 (Vue + Webpack) 來開發(fā)生產(chǎn)性能深度整站營銷的小程序。
Mpx 具有以下一些優(yōu)秀特性:
數(shù)據(jù)響應(yīng)特性 (watch/computed)
增強的模板語法(動態(tài)組件/樣式綁定/類名綁定/內(nèi)聯(lián)事件函數(shù)/雙向綁定等)
深度性能整站營銷(原生自定義組件/基于依賴收集和數(shù)據(jù)變化的 setData )
Webpack 編譯( npm/循環(huán)依賴/Babel/ESLint/css 預(yù)編譯/代碼整站營銷等)
單文件組件開發(fā)
狀態(tài)管理( Vuex 規(guī)范/多實例/可合并)
跨團隊合作 (packages)
邏輯復(fù)用能力 (mixins)
腳手架支持
小程序自身規(guī)范的完全支持
支付寶小程序的支持
開發(fā)團隊表示,目前業(yè)界主流的小程序框架主要有 WePY、mpvue 和 Taro,這三者都是將其他的語法規(guī)范轉(zhuǎn)譯為小程序語法規(guī)范,我們稱其為轉(zhuǎn)譯型框架。不同于上述三者,Mpx是一款基于小程序語法規(guī)范的增強型框架,使用 Vue 中優(yōu)秀的語法特性增強了小程序,而不是讓用戶直接使用 vue 語法來開發(fā)小程序,之所以采用這種設(shè)計主要是基于如下考慮:
轉(zhuǎn)譯型框架無法支持源框架的所有語法特性 (如 Vue 模板中的動態(tài)特性或 React 中動態(tài)生成的 jsx ),用戶在使用源框架語法進行開發(fā)時可能會遇到不可預(yù)期的錯誤,具有不確定性;
小程序本身的技術(shù)規(guī)范在不斷地更新進步,許多新的技術(shù)規(guī)范在轉(zhuǎn)譯型框架中無法支持或需要很高的支持成本,而對于增強型框架來說只要新的技術(shù)規(guī)范不與增強特性沖突,就能夠直接支持。
目前 Mpx 框架已經(jīng)在滴滴內(nèi)部大量使用,支撐了滴滴出行、青桔單車、街兔電單車、營銷、車服等業(yè)務(wù)在小程序上的實現(xiàn),線上運行穩(wěn)定,收到了大量的好評反饋。未來在對框架進行持續(xù)迭代整站營銷的同時會持續(xù)跟進微信和支付寶最新的技術(shù)標(biāo)準(zhǔn),同時也會將在更多的小程序平臺上進行適配。
由于設(shè)計初衷和專注點在于增強小程序開發(fā)體驗,Mpx 并沒有進行跨 H5 甚至是跨 Native 的支持,但現(xiàn)實業(yè)務(wù)當(dāng)中確實存在這樣的訴求,未來開發(fā)團隊會在Mpx 的基礎(chǔ)上對跨端進行一定的嘗試,與此同時依然會持續(xù)維護升級 Mpx ,原因在于跨端意味著靈活性受限及能力的缺失,希望能給用戶提供第二種選擇。
Mpx 與業(yè)內(nèi)主流小程序框架異同對比
p0