-
MVVM到底是什麼,跟Jquery有什麼區別?
-
MVVM理解,跟MVC區別
- Model View Controller,一般是使用者操作view檢視按鈕,觸發controller內方法,cotroller修改model資料,model通知view,算是後端開發的主流思想
- vue中template為View, data物件為Model,new Vue({el,data,methods})為ViewModel,連線檢視view與data,view通過DOMlistenser事件`on`繫結來操作model,model通過資料繫結dataBinding操作view
-
資料,檢視層是否分離
- vue中,proxy代理_data資料,並且不允許直接修改。template為檢視
- 不分離背離了開放封閉的原則,不利於維護,功能擴充套件
-
以資料驅動檢視
- 只修改資料,就會觸發封裝好的dom操作。不需要手動進行dom操作
-
MVVM 實現三要素
-
如何監聽變化,實現響應式
- Object.defineProperty設定get,set監聽data變化
- vm.data,利用Object.defineProperty,proxy代理data物件,便於render函式中的this取值
-
檢視模板解析,模板引擎
- 本質是字串,有v-if,v-for等邏輯,需要以js執行
-
將js中data物件屬性捆綁到render函式,最後返回vnode,render函式中結構與snabbdom中h函式相似
// vue function render () { with (this) { //將_c,_v,price的this省略,相當於this._c,this._vthis.price _c(`div`, {attrs: {`id`: `app`}}, [_c(`span`, [_v(_s(price))])]) //_c建立vnode,_v字串節點,_s字串轉話 } } // snabbdom h(`div#app`, [ h(`span`, vm.price) ])
-
dom如何生成的,如何在監聽變化後渲染,使用patch方法與snabbdom相同
- 首次渲染
-
更新渲染
vm._update(vnode) { const prevVnode = vm.vnode vm._vnode = vnode if (!prevVnode) { vm.$el = vm.__patch__(vm.$el,vnode) //初次渲染 } else { vm.$el = vm.__patch__(prevVnode,vnode) } } function updateComponent() { vm._update(vm._render()) //此處render即是模板轉化的render函式,執行後可生成vnode }
-
-
理解vue與MVVM三要素
相關文章
- vue之mvvm原理解析VueMVVM
- 潛入理解MVVM&VueMVVMVue
- Vue 與 MVVM 之間那些事兒VueMVVM
- MVVM原理,你看了也會vue MVVMMVVMVue
- 對於MVVM的理解MVVM
- MVVM極易理解版MVVM
- 理解並運用MVC,MVP,MVVMMVCMVPMVVM
- vue--實現MVVM原理VueMVVM
- Vue.js中的MVVMVue.jsMVVM
- WPF-理解被濫用的MVVMMVVM
- Proxy實現vue MVVM實踐VueMVVM
- 知否?知否?Vue之MVVMVueMVVM
- Vue、MVVM、MVC、雙向繫結VueMVVMMVC
- 實現Vue-MVVM-step1VueMVVM
- VUE 中 MVVM – step7 – EventVueMVVM
- 談談對MVC、MVP和MVVM的理解?MVCMVPMVVM
- VUE - MVVM - part13 - inject & 總結VueMVVM
- 淺探VUE的MVVM模式實現VueMVVM模式
- 模擬 Vue 手寫一個 MVVMVueMVVM
- Vue.js 深入理解 computed 與 watchVue.js
- 基於Vue的簡易MVVM實現VueMVVM
- Vue.js 是如何實現 MVVM 的?Vue.jsMVVM
- 實現 VUE 中 MVVM - step11 - ExtendVueMVVM
- 實現 VUE 中 MVVM - step10 - ComputedVueMVVM
- 實現 VUE 中 MVVM - step5 - ObserveVueMVVM
- 實現 VUE 中 MVVM - step6 - ArrayVueMVVM
- 實現 VUE 中 MVVM - step3 - WatcherVueMVVM
- 實現 VUE 中 MVVM - step2 - DepVueMVVM
- 關於Vue的元件與模板的初步理解Vue元件
- 剖析Vue原理&實現雙向繫結MVVMVueMVVM
- 【學習筆記】mvc與mvvm筆記MVCMVVM
- MVVM與MVC模式的比較MVVMMVC模式
- 深入理解vue中的slot與slot-scopeVue
- 遞迴三要素遞迴
- 實現 VUE 中 MVVM - step4 - 優化WatcherVueMVVM優化
- 實現 VUE 中 MVVM – step13 – inject & 總結VueMVVM
- 實現 VUE 中 MVVM – step8 – 優化EventVueMVVM優化
- MVP 與 MVVM 優缺點總結MVPMVVM