當前位置:
首頁 >
微信小程序就是 vue 吗?
發(fā)布時間:2023/11/30
56
博士
生活随笔
收集整理的這篇文章主要介紹了
微信小程序就是 vue 吗?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
騰訊的技術水平也是很強,早些年它們就在QQ的web版實現(xiàn)一個叫Q的MVVM,能兼容IE低版本,只要在其上面升級一下,就有現(xiàn)在這個Q natve了。它的底層可以大量借鑒react native的GitHub - imweb/Q.js: fake-MVVM library
還是差挺多的,相比“vue native”的話,能想到的:微信小程序是單向綁定。而vue是雙向(微信小程序沒有提供v-model的等價指令,僅能通過事件對象讀取用戶輸入)微信小程序數(shù)據(jù)綁定支持的表達式十分簡單(即雙大括號中的表達式),目前只支持這四種表達式:算數(shù)表達式、關系表達式、字符串連接表達式、三元表達式。vue則是全功能的JS表達式。體驗上差別比較明顯的在于是否支持函數(shù)/方法調(diào)用表達式微信小程序在初始化之后,再對原來的數(shù)據(jù)對象進行任何更改,都始終不會生效!只能手動調(diào)用setData接口明確指明同步哪些鍵/值至視圖層才會觸發(fā)更新。而vue則是對數(shù)據(jù)對象進行了監(jiān)聽,只要有更改就可以并且會立即觸發(fā)視圖層的更新。事件冒泡的阻止上,微信小程序只能通過bindtap/bindxxx與catchtap/catchxxx兩種不同形式的事件綁定屬性在監(jiān)聽時即決定是否阻止事件冒泡。而vue與傳統(tǒng)web一樣,可以在事件回調(diào)中運行時調(diào)用接口阻止繼續(xù)冒泡。第1條無可厚非,微信小程序沒有想著做一套完整的mvvm,只是提供“數(shù)據(jù)渲染”而已。而導致第2~4條中現(xiàn)象的本質(zhì)原因是:微信小程序的JS邏輯層與視圖層分散在兩個不同的上下文環(huán)境中(JS邏輯跑在JsCore中,視圖層的渲染包括模板渲染、樣式應用、事件派發(fā)卻都在native環(huán)境中)。所以數(shù)據(jù)對象(view-model)在兩層間沒有共享、并且同步通信的成本太高不過這些區(qū)別都不算什么,畢竟能在微信上開發(fā)native小程序了啊!
你先想好vue 和vue native(weex)是不同的。一個是寫網(wǎng)頁的,一個是寫app的。那么這個微信小程序,你說他是網(wǎng)頁還是app呢。很明顯是網(wǎng)頁吧。1.現(xiàn)在只有一種技術能實現(xiàn)一個app在另一個app內(nèi)跑起來,那就是虛擬機。微信沒說它做了虛擬機。而且即便做了,那卡的叫一個酸爽。2.如果是native應用,他本身會有一個長時間的編譯過程安裝過程,你寫的小程序有這樣的過程嗎?正經(jīng)回答一下區(qū)別,并沒有深入研究,首先它肯定是一個組件化的前端mvvm框架,但是我不確定它是類似react這樣的單向數(shù)據(jù)流還是類似于vue這樣的雙向綁定。不過本質(zhì)都區(qū)別不大。不過最大的不同點就是它里面定義了很多可以直接調(diào)用微信接口的橋??梢垣@取微信app的很多信息。
語法相似吧,不能勸說是
只能說類似vue react這種數(shù)據(jù)驅動視圖的框架 借鑒的 寫起來其實挺舒服的
no,雙向數(shù)據(jù)綁定的模板語法都差不多,
還是差挺多的,相比“vue native”的話,能想到的:微信小程序是單向綁定。而vue是雙向(微信小程序沒有提供v-model的等價指令,僅能通過事件對象讀取用戶輸入)微信小程序數(shù)據(jù)綁定支持的表達式十分簡單(即雙大括號中的表達式),目前只支持這四種表達式:算數(shù)表達式、關系表達式、字符串連接表達式、三元表達式。vue則是全功能的JS表達式。體驗上差別比較明顯的在于是否支持函數(shù)/方法調(diào)用表達式微信小程序在初始化之后,再對原來的數(shù)據(jù)對象進行任何更改,都始終不會生效!只能手動調(diào)用setData接口明確指明同步哪些鍵/值至視圖層才會觸發(fā)更新。而vue則是對數(shù)據(jù)對象進行了監(jiān)聽,只要有更改就可以并且會立即觸發(fā)視圖層的更新。事件冒泡的阻止上,微信小程序只能通過bindtap/bindxxx與catchtap/catchxxx兩種不同形式的事件綁定屬性在監(jiān)聽時即決定是否阻止事件冒泡。而vue與傳統(tǒng)web一樣,可以在事件回調(diào)中運行時調(diào)用接口阻止繼續(xù)冒泡。第1條無可厚非,微信小程序沒有想著做一套完整的mvvm,只是提供“數(shù)據(jù)渲染”而已。而導致第2~4條中現(xiàn)象的本質(zhì)原因是:微信小程序的JS邏輯層與視圖層分散在兩個不同的上下文環(huán)境中(JS邏輯跑在JsCore中,視圖層的渲染包括模板渲染、樣式應用、事件派發(fā)卻都在native環(huán)境中)。所以數(shù)據(jù)對象(view-model)在兩層間沒有共享、并且同步通信的成本太高不過這些區(qū)別都不算什么,畢竟能在微信上開發(fā)native小程序了啊!
你先想好vue 和vue native(weex)是不同的。一個是寫網(wǎng)頁的,一個是寫app的。那么這個微信小程序,你說他是網(wǎng)頁還是app呢。很明顯是網(wǎng)頁吧。1.現(xiàn)在只有一種技術能實現(xiàn)一個app在另一個app內(nèi)跑起來,那就是虛擬機。微信沒說它做了虛擬機。而且即便做了,那卡的叫一個酸爽。2.如果是native應用,他本身會有一個長時間的編譯過程安裝過程,你寫的小程序有這樣的過程嗎?正經(jīng)回答一下區(qū)別,并沒有深入研究,首先它肯定是一個組件化的前端mvvm框架,但是我不確定它是類似react這樣的單向數(shù)據(jù)流還是類似于vue這樣的雙向綁定。不過本質(zhì)都區(qū)別不大。不過最大的不同點就是它里面定義了很多可以直接調(diào)用微信接口的橋??梢垣@取微信app的很多信息。
語法相似吧,不能勸說是
只能說類似vue react這種數(shù)據(jù)驅動視圖的框架 借鑒的 寫起來其實挺舒服的
no,雙向數(shù)據(jù)綁定的模板語法都差不多,
總結
以上是生活随笔為你收集整理的微信小程序就是 vue 吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安阳那个医院治疗不孕不育好
- 下一篇: DNF:DNF进不去了 是在下载变更文件