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