
現如今,微信小程序的應用非常廣泛,各個行業、各個店鋪幾乎都拋去了以往復雜的移動 APP,而選擇了簡單快捷的微信小程序來擴展自己的業務。
微信小程序的開發方式
微信小程序的開發方式主要分為原生開發和框架開發但是框架開發又有很多,文章主要是談 wepy、mpvue、taro、uni-app 開發框架。
1、原生開發
小程序原生開發框架是微信官網首次推出的,目的是為了讓開發者在微信中開發具有原生APP的體驗盡可能簡潔高效。原生開發不支持工程化,需要自己動手搭建;在語法規范上,使用的是小程序開發規范;沒有組件化機制以及本身無自動構建;CSS樣式使用 wxss。在開發方式上,需要開發人員全新學習小程序的書寫規范,目前支持 slot,但不支持 npm;開發成本較高;原生開發不支持多端復用,但是在開發者社區里,可以更好的解決開發問題或者更好的交流彼此的建議。
微信小程序原生框架管理了整個小程序的頁面路由,可以實現小程序頁面之間的無痕變換,并保護了小程序頁面完整的生命周期。
2、wepy 框架
wepy 框架是騰訊團隊首推的一款基于 Vue 語法規范的開發框架。若開發者之前從未接觸過 Vue,不熟悉其中的相關概念,導致在閱讀wepy 文檔以及使用 wepy 進行開發的過程中,會出現很多的疑惑以及大同小異的問題。此框架不具有IDE圖形化開發工具以及語法校驗工具,在語法支持方面,支持 TypeScript,組件自動補全功能是沒有的,CSS 樣式使用 sass、less 和 stylus。在開發方式上,需要熟悉vue和wepy 兩種語法,支持 slot 組件內容分發插槽支持npm;多端復用上只是提供了轉換各端小程序的功能,但沒有 H5和移動端的支持,但是交流關于框架的技術只能在GitHub 上。
wepy 框架還使用了單文件模式,將原生框架的 app.js、app.json 以及app.wxss 文件統一變換成app.wpy,和 page.js、page.json、page.wxml、以及 page.wxss 配置文件統一變換為 page.wpy,wepy 框架的單文件模式讓小程序的目錄結構變得更清晰,開發者在開發的過程中更加方便。
3、mpvue 框架
mpvue框架是美團推出的一款基于 Vue.js 的用來開發微信小程序的框架。支持微信的所有原生組件和 API,還封裝了自己的跨端API;不具有IDE圖形化開發工具以及語法校驗工具,在語法支持方面,支持 TypeScript,組件自動補全功能是API提供的,CSS 樣式使用 sass、less 和stylus。在開發方式上需要熟悉 Vue;目前不支持 slot,但支持npm;多端復用上只是提供了轉換各端小程序的功能但沒有 H5和移動端的支持,而且交流關于框架的技術只能在 GitHub 上。
mpvue 框架的缺點就是在處理數據的時候,沒有過濾器,數據處理必須提前處理。但是建議開發者在開發小程序的時候,可以以mpvue 框架為主,以其他框架為輔,然后進行小程序的開發,這樣可以更好的發揮mpvue 框架的亮點而隱藏它的不足。
4、taro框架
taro 框架是由京東推出的一款使用 React.js 開發的框架。taro 框架最初的目的就是想利用一套代碼解決多種小程序的開發,比如支付寶小程序、微信小程序、京東小程序以及美團等。因為現在微信小程序的開發框架很多,所以就需要一個可以多端共享的框架,而 taro 框架就是利用一套代碼通過不同的編譯規則進行編譯,就可以實現多端使用,而且不僅限于小程序,APP 以及 H5 等也是可以的,這樣就更加高效的、便利的、智能化的達到了用戶的需求
taro 框架遵循 React 語法規范,它采用與 React 一致的組件化思想,組件生命周期與 React 保持一致,同時taro主要的表達思想就是開箱即用的語法檢測以及代碼自動補全。
5、uni-app 框架
uni-app 框架是一個使用 Vue.js 開發的框架。uni-app被使用的次數多就在于開發者只需要編寫一套代碼,就可以發布到 ioS、Android、H5、以及各種小程序等多個平臺,實現跨端并支持原生代碼混寫和原生 SDK 集成。即使不跨端,uni-app也是更好的小程序開發框架。不管經歷什么樣的項目,開發人員都可以進行快速交付,不會耽誤工期或者不需要考慮違約,而且不需要轉換開發邏輯、更不需要更改每個人自始至終的開發習慣。
uni-app框架是目前開發小程序使用的開發方式中較多的,此框架在案例、跨端、擴展靈活性、性能體驗、學習成本以及開發成本等關鍵指標上有著更大的優勢。但是 uniapp 也有一些劣勢,例如不支持動態組件,不支持具名插槽會導致頁面崩潰,而且在做動態樣式渲染的時候對高度偏移、定位等不友好。盡管如此,但是開發者選擇 uni-app框架開發小程序還是占了很對比重的,因為 uni-app 開發起來成本低,上手快,最重要的是可以不用考慮跨端的問題。