摘要:所以在小程序出現之后,一股框架之風也很快的出現,微信小程序剛推出之后,就出現了兩個比較出名的小程序開發框架,。
原文地址:https://ant-move.github.io/we...
這里說的去除小程序框架其實并不嚴謹,因為小程序本身也算是一個框架,而且是一個功能更加完善的框架系統。在前端的概念中,我們一般說一個框架是指一個用來幫助開發者構建用戶界面的框架,而小程序框架本身不僅僅包含了 UI 層的功能,還提供了 API 能力、服務端的能力,所以說小程序框架本身是一個比常規的前端框架更完善的東西,或者說是一個完善的構建應用系統。
本文中所說的原生小程序與小程序框架的對比,均指與第三方小程序框架的對比。
在小程序的世界里,原生小程序框架已經足夠好,它就是那把給你雕刻小而美應用的雕刻刀,而不必要去尋找一把屠龍刀。
框架的取舍最近 Vue 作者尤大關于框架設計平衡的分享中也提到了框架的取舍問題。
當我們去構建一個復雜的前端應用的時候,如果沒有工具,而是使用原生 JavaScript 去開發的話,那只會花費更多的時間。然而 web 應用的開發環境是否也適用于小程序開發呢?
對小程序來說,原生小程序框架就是我們的工具,它足以用來構建一個復雜的小程序應用。
小程序框架在小程序生態發展的初期的確起到了很大的促進作用,然而隨著小程序原生框架的不斷完善,這些小程序框架的作用已經不再具備優勢。
框架的確給前端帶來了生產力的提高,也帶動了前端界生態的發展。所以在小程序出現之后,一股框架之風也很快的出現,微信小程序剛推出之后,就出現了兩個比較出名的小程序開發框架,wepy、mpvue。這兩個框架都帶著一個共同的出發點,那就是將前端框架的開發體驗移植到小程序開發中,從語法層做了改動,使用用戶可以采用類似 Vue.js 風格的語法去開發微信小程序。
這些小程序框架初期主要做的是對小程序原生開發體驗的增強,隨著小程序生態的發展,又增加了跨端開發能力的支持。然而我們框架的引入真的增強了開發體驗嗎?我們是否真的需要跨端能力?是否需要通過引入框架的形式來實現跨端支持?
答案是否定的,引入框架對于小程序開發來說只會帶來更多的問題。
原生小程序 VS Web 框架如下是原生小程序與 Web 框架功能的對比情況,可以看到 Web 框架具備的能力,原生小程序也具備。
小程序出現的時候 Web 框架已經發展的比較成熟,所以可以簡單猜測小程序的框架借鑒了許多 Web 框架的特性,這也是為什么小程序開發方式與前端開發方式如此接近的原因。功能對比
模塊 | Vue.js | React.js | 原生小程序 |
---|---|---|---|
數據監聽 | 支持 | 支持 | 支持 |
組件式開發 | 支持 | 支持 | 支持 |
組件庫 | 開源組件庫豐富 | 開發組件庫豐富 | 原生小程序組件支持 |
數據狀態管理 | vuex | redux | globalData 可實現基本的數據管理 |
路由 | vue-router | react-router | 原生支持 |
模塊開發 | npm | npm | npm(有輕微的約束限制) |
在開發前端應用的時候,Vue 和 React 技術棧是比較流行的兩種類型,而對于選擇什么樣的生態工具時,許多開發者并不確定選擇什么樣的技術棧,所以一般都會選擇 Vue 全家桶和 React 全家桶。原生小程序框架從能力上就考慮了小程序場景所需的技術棧,這也是筆者推崇原生小程序開發方式的原因,如果你對你當前構建的應用場景需要什么樣的技術棧特別清晰,那么就用原生的好了,因為原生小程序框架就是基于小程序場景開發的。選擇什么樣的技術棧,提供什么樣的框架能力,這應該是小程序平臺團隊去思考的問題。
原生小程序的優勢從上面的功能層級對比我們可以發現,原生小程序與框架相比,功能是非常接近的,簡單來說就是同一個物種,只不過是花貓、白貓的區別。那么除此之外,原生小程序還有哪些優勢呢?
穩定
安全
可靠
原生小程序由專業的小程序團隊維護更新,這是社區開源項目無法比擬的。即使是熱門的開源項目也難保不會出現停滯更新維護的情況,也許有一天你就發現代碼中的坑只得你自己的修復。
原生小程序還處于快速發展的階段,每過一段時間就會發布新功能,如果使用原生小程序開發的話就可以及時的享用,而如果依賴于三方框架的話,只得依賴于框架作者更新之后才能使用。
作為一個開發人員,有時候選擇一個什么樣的框架是很難的,如果你想正確的選擇框架,就得必須要了解框架所做的一些內部權衡,你必須知道這個框架朝著哪個方向發展,并且知道它與你構建的東西是否一致。而對于小程序來說,上述的問題其實不存在,小程序框架就是小程序平臺團隊為你量身打造的。
想了解更多小程序框架可以查看如下三個框架:
WePY 讓小程序支持組件化開發的框架 WePY 框架在開發過程中參考了 Vue 等現有框架的一些語法風格和功能特性,對原生小程序的開發模式進行了再次封裝,更貼近于 MVVM 架構模式, 并支持ES6/7的一些新特性。
mpvue 是一個使用 Vue.js 開發小程序的前端框架,目前支持 微信小程序、百度智能小程序,頭條小程序 和 支付寶小程序。 框架基于 Vue.js,修改了的運行時框架 runtime 和代碼編譯器 compiler 實現,使其可運行在小程序環境中,從而為小程序開發引入了 Vue.js 開發體驗。
Taro 是一套遵循 React 語法規范的 多端開發 解決方案。使用 Taro,我們可以只書寫一套代碼,再通過 Taro 的編譯工具,將源代碼分別編譯出可以在不同端(微信/百度/支付寶/字節跳動/QQ小程序、快應用、H5、React-Native 等)運行的代碼。小程序跨端需求
繼微信小程序推出后,阿里,百度,頭條也推出了自己的小程序平臺,這就給小程序開發者帶來一個問題,是每個平臺開發一套還是尋求代碼復用的技術方案。
其實跨端方案很多,現有的小程序框架大多都內置了跨端能力支持,對于跨端支持能力要求并不是特別高的團隊,也可以搭建自己的跨端方案,因為這些小程序框架都很類似,所以說搭建一套針對特定場景的跨端方案也變得可行。
Antmove - 編譯型小程序跨端解決方案Antmove 是一個致力于提供通用型小程序跨端的解決方案,通過代碼編譯的手段和 runtime 的處理,實現小程序跨平臺的目的,Antmove 與其它小程序開發框架的區別就是,它盡可能的通過代碼編譯的方式來解決多端差異問題(一個平臺的代碼轉換到另一個平臺),編譯方式難以處理的才會進行運行時的抹平,而這部分只有簡單的數據轉換處理,不會引入特定的編碼約束。
以微信小程序轉支付寶小程序為例,微信小程序和支付寶小程序底層設計不同,導致雙方組件機制不一樣,微信小程序組件間的通信是基于事件的,而支付寶小程序是基于 props 的。在將使用了微信小程序事件能力的小程序應用轉換為支付寶小程序應用的過程中,Antmove 不會去構造一套事件機制,它盡可能的避免任何不必要的運行時開銷,而是利用支付寶小程序的 props 機制去實現同樣的功能。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106672.html
摘要:使用簽署免費證書后端掘金本文操作在操作系統下完成,需要和超文本傳輸安全協議英語,縮寫,常稱為,紅黑樹深入剖析及實現后端掘金紅黑樹是平衡二叉查找樹的一種。 使用 Lets Encrypt 簽署免費 Https 證書 - 后端 - 掘金 本文操作在Linux操作系統下完成,需要Python和Nginx 超文本傳輸安全協議(英語:Hypertext Transfer Protocol Sec...
摘要:怎么影響了我的思考方式對前端開發者來說,能強化了面向接口編程這一理念。使用的過程就是在加深理解的過程,確實面向接口編程天然和靜態類型更為親密。摘要: 學會TS思考方式。 原文:TypeScript - 一種思維方式 作者:zhangwang Fundebug經授權轉載,版權歸原作者所有。 電影《降臨》中有一個觀點,語言會影響人的思維方式,對于前端工程師來說,使用 typescript 開...
摘要:怎么影響了我的思考方式對前端開發者來說,能強化了面向接口編程這一理念。使用的過程就是在加深理解的過程,確實面向接口編程天然和靜態類型更為親密。 電影《降臨》中有一個觀點,語言會影響人的思維方式,對于前端工程師來說,使用 typescript 開發無疑就是在嘗試換一種思維方式做事情。 其實直到最近,我才開始系統的學習 typescript ,前后大概花了一個月左右的時間。在這之前,我也在...
閱讀 3503·2023-04-26 02:00
閱讀 3096·2021-11-22 13:54
閱讀 1709·2021-08-03 14:03
閱讀 720·2019-08-30 15:52
閱讀 3101·2019-08-29 12:30
閱讀 2430·2019-08-26 13:35
閱讀 3375·2019-08-26 13:25
閱讀 3011·2019-08-26 11:39