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