接觸微信小程序有一段時間的開發(fā)者或開發(fā)團(tuán)隊(duì),我相信多多少少都會為自己搭建封裝一些便于開發(fā)的框架/腳手架,尤其是一些做過Web開發(fā)的開發(fā)者,受到現(xiàn)如今Web主流開發(fā)框架如Angular,React,Vue等的核心思想的影響,對數(shù)據(jù)/狀態(tài)管理、組件化、跨平臺等都有較高的追求。 所以,從小程序出現(xiàn)到現(xiàn)在,已經(jīng)陸陸續(xù)續(xù)出現(xiàn)了一些遵循了這些Web開發(fā)思想的小程序框架,比較突出的就是WePY,一個由騰訊團(tuán)隊(duì)推出的小程序組件化開發(fā)框架,主要的特點(diǎn)如下:
![]() 這些特性基本上是現(xiàn)今主流Web開發(fā)的標(biāo)配了。因?yàn)槲以陂_發(fā)Web應(yīng)用的時候也經(jīng)常使用Vue,所以在試用WePY的過程中覺得非常的熟悉好上手,它確實(shí)是一個值得使用、可以有效提高生產(chǎn)力的好框架。 不過,今天的主角并不是這個類Vue框架WePY,我想聊的是另外一個基于Vue的框架:美團(tuán)點(diǎn)評團(tuán)隊(duì)出品的小程序開發(fā)框架:mpvue。為什么說WePY是一個“類Vue”的框架,而這個mpvue是“基于Vue”的框架呢?因?yàn)閃ePY是在代碼開發(fā)風(fēng)格上借鑒了Vue,本身和Vue沒有什么關(guān)系;而這個mpvue是從整個Vue的核心代碼上經(jīng)過二次開發(fā)而形成的一個框架,相當(dāng)于是給Vue本身賦能,增加了開發(fā)微信小程序的能力。 ![]() 使用mpvue開發(fā)小程序,你將在小程序技術(shù)體系的基礎(chǔ)上獲取到這樣一些能力:
它的目標(biāo)是:在未來最理想的狀態(tài)下,可以一套代碼可以直接跑在多端:WEB、微信小程序、支付寶小程序、Native(借助weex)。不過由于各個端之間都存在一些比較明顯的差異性,從產(chǎn)品的層面上講,不建議這么做,這個框架的官方他們對它的期望的也只是開發(fā)和調(diào)試體驗(yàn)的一致。 通過官網(wǎng)提供的五分鐘快速上手教程,可以發(fā)現(xiàn)它的開發(fā)過程和Vue保持高度一致,連使用的命令行工具也還是原先開發(fā)Web應(yīng)用時所用的 #創(chuàng)建一個小程序工程vue init mpvue/mpvue-quickstart my-project 編寫模板代碼的時候通常也主要是以HTML為主,比如我們編寫一個
而mpvue會通過編譯,將這個HTML模板轉(zhuǎn)換成小程序的WXML代碼: <template name='counter$39c97971'>
<view class='_div data-v-72101980 counter-warp'><view class='_p data-v-72101980'>Vuex counter:{{ count }}</view><view class='_p data-v-72101980'> <button bindtap='handleProxy' data-eventid='{{'0'}}' data-comkey='{{$k}}' class='_button data-v-72101980'> </button> <button bindtap='handleProxy' data-eventid='{{'1'}}' data-comkey='{{$k}}'class='_button data-v-72101980'>-</button></view><navigator url='/pages/index/index' class='_a data-v-72101980 home'>去往首頁</navigator>
</view></template> 這樣,我們就可以完全用開發(fā)Web應(yīng)用的方式去開發(fā)小程序了,這為我們減少了一些思維切換方面的成本。其實(shí)最重要的是:
另外,提供一個對原生微信小程序、mpvue、WePY這三種開發(fā)小程序方式的比較,感興趣的朋友可以參考一下: ![]() |
|