開發小程式,也許你並不需要第三方小程式框架
這裡說的去除小程式框架其實並不嚴謹,因為小程式本身也算是一個框架,而且是一個功能更加完善的框架系統。在前端的概念中,我們一般說一個框架是指一個用來幫助開發者構建使用者介面的框架,而小程式框架本身不僅僅包含了UI層的功能,還提供了API能力、服務端的能力,所以說小程式框架本身是一個比常規的前端框架更完善的東西,或者說是一個完善的構建應用系統。本文中所說的原生小程式與小程式框架的對比,均指與第三方小程式框架的對比。
在小程式的世界裡,原生小程式框架已經足夠好,它就是那把給你雕刻小而美應用的雕刻刀,而不必要去尋找一把屠龍刀。
1、框架的取捨
最近Vue作者尤大關於框架設計平衡的分享中也提到了框架的取捨問題。
當我們去構建一個複雜的前端應用的時候,如果沒有工具,而是使用原生JavaScript去開發的話,那隻會花費更多的時間。對小程式來說,原生小程式框架就是我們的工具,它足以用來構建一個複雜的小程式應用。
然而web應用的開發環境是否也適用於小程式開發呢?
小程式框架在小程式生態發展的初期的確起到了很大的促進作用,然而隨著小程式原生框架的不斷完善,這些小程式框架的作用已經不再具備優勢。
框架的確給前端帶來了生產力的提高,也帶動了前端界生態的發展。所以在小程式出現之後,一股框架之風也很快的出現,微信小程式剛推出之後,就出現了兩個比較出名的小程式開發框架,wepy、mpvue。
這兩個框架都帶著一個共同的出發點,那就是將前端框架的開發體驗移植到小程式開發中,從語法層做了改動,使用使用者可以採用類似 Vue.js 風格的語法去開發微信小程式。
這些小程式框架初期主要做的是對小程式原生開發體驗的增強,隨著小程式生態的發展,又增加了跨端開發能力的支援。然而我們框架的引入真的增強了開發體驗嗎?我們是否真的需要跨端能力?是否需要通過引入框架的形式來實現跨端支援?
答案是否定的,引入框架對於小程式開發來說只會帶來更多的問題。
2、原生小程式 VS Web 框架
如下是原生小程式與Web框架功能的對比情況,可以看到 Web 框架具備的能力,原生小程式也具備。
小程式出現的時候 Web 框架已經發展的比較成熟,所以可以簡單猜測小程式的框架借鑑了許多 Web 框架的特性,這也是為什麼小程式開發方式與前端開發方式如此接近的原因。
功能對比
在開發前端應用的時候,Vue和React技術棧是比較流行的兩種型別,而對於選擇什麼樣的生態工具時,許多開發者並不確定選擇什麼樣的技術棧,所以一般都會選擇Vue全家桶和React全家桶。
原生小程式框架從能力上就考慮了小程式場景所需的技術棧,這也是筆者推崇原生小程式開發方式的原因,如果你對你當前構建的應用場景需要什麼樣的技術棧特別清晰,那麼就用原生的好了,因為原生小程式框架就是基於小程式場景開發的。選擇什麼樣的技術棧,提供什麼樣的框架能力,這應該是小程式平臺團隊去思考的問題。
3、原生小程式的優勢
從上面的功能層級對比我們可以發現,原生小程式與框架相比,功能是非常接近的,簡單來說就是同一個物種,只不過是花貓、白貓的區別。那麼除此之外,原生小程式還有哪些優勢呢?
穩定安全可靠
原生小程式由專業的小程式團隊維護更新,這是社群開源專案無法比擬的。即使是熱門的開源專案也難保不會出現停滯更新維護的情況,也許有一天你就發現程式碼中的坑就得你自己的修復。
原生小程式還處於快速發展的階段,每過一段時間就會發布新功能,如果使用原生小程式開發的話就可以及時的享用,而如果依賴於三方框架的話,只得依賴於框架作者更新之後才能使用。
作為一個開發人員,有時候選擇一個什麼樣的框架是很難的,如果你想正確的選擇框架,就得必須要了解框架所做的一些內部權衡,你必須知道這個框架朝著哪個方向發展,並且知道它與你構建的東西是否一致。而對於小程式來說,上述的問題其實不存在,小程式框架就是小程式平臺團隊為你量身打造的。
想了解更多小程式框架可以檢視如下三個框架:
WePY讓小程式支援元件化開發的框架WePY框架在開發過程中參考了 Vue等現有框架的一些語法風格和功能特性,對原生小程式的開發模式進行了再次封裝,更貼近於MVVM架構模式, 並支援ES6/7的一些新特性。mpvue是一個使用Vue.js開發小程式的前端框架,目前支援 微信小程式、百度智慧小程式,頭條小程式和支付寶小程式。框架基於 Vue.js,修改了的執行時框架runtime和程式碼編譯器compiler實現,使其可執行在小程式環境中,從而為小程式開發引入了Vue.js開發體驗。Taro是一套遵循React語法規範的多端開發解決方案。使用Taro,我們可以只書寫一套程式碼,再通過 Taro的編譯工具,將原始碼分別編譯出可以在不同端(微信/百度/支付寶/位元組跳動/QQ小程式、快應用、H5、React-Native 等)執行的程式碼。
4、小程式跨端需求
繼微信小程式推出後,阿里,百度,頭條也推出了自己的小程式平臺,這就給小程式開發者帶來一個問題,是每個平臺開發一套還是尋求程式碼複用的技術方案。
其實跨端方案很多,現有的小程式框架大多都內建了跨端能力支援,對於跨端支援能力要求並不是特別高的團隊,也可以搭建自己的跨端方案,因為這些小程式框架都很類似,所以說搭建一套針對特定場景的跨端方案也變得可行。除此之外,目前市面上還有一些第三方提供的小程式工具支援一個後臺支援多端小程式,比如有贊、APPx應用魔方等。
當然每個人的具體需求和喜好選擇不同,並不能一概而論。這裡只是分享的個人使用感受,供大家參考討論,有不同的意見歡迎留言討論哦!