從16年微信小程序內測到如今,各大公司對小程序的開發業務需求愈來愈大,可是開發者用原生去開發小程序很難受,尤爲是業務比較複雜的項目若是用原生開發很難去管理和迭代javascript
使用原生開發的問題:css
使用框架能夠解決的問題:前端
WePY (發音: /'wepi/)是一款讓小程序支持組件化開發的框架,經過預編譯的手段讓開發者能夠選擇本身喜歡的開發風格去開發小程序。框架的細節優化,Promise,Async Functions的引入都是爲了能讓開發小程序項目變得更加簡單,高效vue
mpvue 是一個使用 Vue.js 開發小程序的前端框架。框架基於 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 實現,使其能夠運行在小程序環境中,從而爲小程序開發引入了整套 Vue.js 開發體驗。java
主要特性react
Taro 是一套遵循 React 語法規範的 多端開發 解決方案webpack
uni-app 是一個使用 Vue.js 開發跨平臺應用的前端框架。web
Chameleon/kəˈmiːlɪən/,簡寫CML,中文名卡梅龍;中文意思變色龍,意味着就像變色龍同樣能適應不一樣環境的跨端總體解決方案。vue-cli
主要特性npm
框架 | 支持力度 | 語法 | star數量 | 開源時間 | 編譯方式 |
---|---|---|---|---|---|
wepy | 微信小程序 | 類Vue | 18854 | 2016-11-23 | 環境變量條件編譯 |
mpvue | 微信小程序、支付寶小程序、百度小程序、頭條小程序 | Vue | 18605 | 2018-03-09 | 環境變量條件編譯 |
taro | H五、微信小程序、支付寶小程序、百度小程序、頭條小程序、React Native、快應用、QQ小程序 | React | 21740 | 2018-06-07 | 環境變量+文件編譯 |
uni-app | H五、微信小程序、支付寶小程序、百度小程序、頭條小程序、QQ小程序、Android版、IOS版 | Vue | 12484 | 2018-07 | 自研條件編譯語法 |
chameleon | H五、微信小程序、APP端(Chameleon Playground App、Weex playground) | 類Vue系,採用CML + CMSS + JS | 6521 | 2019-02-26 | 自研多態協議 |
star數量記錄於2019-09-17
wepy
優勢:微信團隊提供的框架,對微信小程序的支持度高,可工程化開發項目,組件和相關文檔內容豐富,論壇和交流社區活躍
缺點:只支持微信小程序,支持端單一,框架自己靜態編譯,動態repeat時會出現比較嚴重的 BUG,語法解析有時會出現錯誤,錯誤處理還比較簡單
mpvue
優勢:開源時間最先的多端框架,網上相關的問題和例子較多,適用於工程化和組件化開發項目
缺點:開發團隊基本再也不維護該框架,使用者數量愈來愈少,且框架自己存在的各類問題通過長時間的迭代依舊沒有解決
taro
優勢:支持端能力豐富,開發團隊維護力度大,論壇和官方的問題解決速度快,自己基於微信小程序API開發,微信小程序的支持能力強大
缺點:自己是文件的靜態編譯,複雜代碼的轉換的上會產生問題,對H5和移動端的端兼容能力比較差
uni-app
優勢:開發團隊主推的框架,論壇和交流社區很是活躍,端的兼容能力異常強大,存在特定IDE去兼容框架代碼的書寫規範
缺點:部分代碼未開源,官方問題反饋速度不及時,編輯器綁定
chameleon
優勢:規劃完整,統一的多態協議,漸進式跨端,提供了基礎開發腳手架命令工具,幫助端開發者從開發、聯調、測試、上線等全流程高效的完成業務開發
缺點:開源時間短,相關的資料和問題解決方法較少,端兼容能力還待完善
現有的小程序框架不少,在項目開發中選型要根據業務和項目自己的實際狀況選擇
若是隻是兼容微信小程序,使用wepy、taro、chameleon均可以,由於這些框架的API都是基於微信小程序的,因此對微信小程序的兼容性基本和原生差很少,vue系的開發者能夠選擇wepy、chameleon,react系的開發者能夠選用taro。固然一下開發者爲了輕便的開發可使用glup作工程化以原生的進行開發,不過框架自己雖然增長了包的大小,可是框架在原生基礎上會封裝一下性能優化的點,如setData的重複渲染等。
不選mpvue的緣由是由於mpvue的開發團隊已再也不維護,並且mpvue在兼容微信小程序的複雜業務上也存在部分問題一直沒有解決。
不選uni-app的緣由只有一個,不喜歡使用HBuildX
若是是要兼容多端的話,能夠根據兼容端能力的需求選擇taro或者chameleon,chameleon雖然開源時間短,可是統一多態協議這個設計理念確實很不錯。taro是凹凸實驗室重點推廣的項目,在使用過程當中能夠發現論壇的反饋和交流羣的恢復速度仍是很及時的,使用taro能夠很好的兼容微信小程序,若是要兼容其餘端須要在代碼根據端進行特殊處理
小程序框架選型,不過選擇什麼框架,最後都會編譯成小程序可識別的代碼運行在微信客戶端,根據業務需求選擇小程序框架要搞清楚小程序原生的能力。最後不得不吐槽一下微信開發文檔的粗糙,不少關鍵的點描述的都不是很詳細