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