理解 Vue 的 MVVM 模式

2021-08-21 11:26:04 字數 1875 閱讀 5428

vue: 實

現方式使用資料劫持+ 發布訂閱模式,其核心為

object.defineproperty

不相容ie8以下

angualr:  使用髒值檢測

這次主要介紹vue如何通過 object.defineproperty() 實現mvvm

object.defineproperty(obj, 『propertyname』, ,

//當給obj賦值時呼叫,引數為賦值的引數

set(val)

})

使用object.defineproperty定義所有屬性

vue實現mvvm的方式主要通過data裡面的值 遞迴的進行資料劫持達到深度響應(因為每次賦予乙個新物件時會給這個新物件增加資料劫持)

先建立 乙個html(任意名字) 和mvvm.js在同乙個目錄下

先建立 乙個html(任意名字) 和mvvm.js在同乙個目錄下

// 觀察物件增加object.defineproperty

function observe(data) ,

set(newval)

val = newval; // 如果以後獲取值的時候將剛才設定的值放回去}})

}}控制台檢視

這樣就完成了乙個簡單的資料劫持

但是任然存在問題

當賦予乙個物件時候我們仍需要對內部的物件進行資料劫持,以達到深度響應

如果沒有進行資料劫持的情況下,屬性不具有set() get()方法,此時是無法實現資料相應的

function observe(data) })}

}

再次檢視控制台

如此即可完成資料的每層物件進行劫持達到深度響應的效果

此時我們還需要做一件事,我們每次通過soyas._data這種方式訪問並不優雅

我們可以通過資料**達到soyas.property的方式訪問

function soyas(options = {}) ,

set(newval) })}

}

新增完上述**後

very good!一切ok

MVVM模式理解

mvvm 是 model view viewmodel 的縮寫。model代表資料模型,也可以在model中定義資料修改和操作的業務邏輯。view代表ui 元件,它負責將資料模型轉化成ui 展現出來。viewmodel監聽模型資料的改變和控制檢視行為 處理使用者互動,簡單理解就是乙個同步view 和...

MVVM模式的理解

mvvm全稱model view viewmodel是基於mvc和mvp體系結構模式的改進,mvvm就是mvc模式中的view的狀態和行為抽象化,將檢視ui和業務邏輯分開,更清楚地將使用者介面ui的開發與應用程式中業務邏輯和行為的開發區分開來。mvvm模式簡化了介面與業務的依賴,有助於將圖形使用者介...

Vue 如何理解MVVM?

mvvm 即model view viewmodel的縮寫。背景 傳統元件,只是靜態渲染,通過拼接資料進行渲染,更新需要依賴於dom操作。而vue mvvm 資料驅動檢視。只需要更改資料,不需要自己操作dom,vue框架本身會根據資料重新渲染檢視。model 資料模型,進行資料的業務邏輯處理 vie...