資料驅動:vue最大的特點。
資料驅動是通過:資料劫持結合發布者-訂閱者模式實現的。
在vue中,所謂的資料驅動就是當資料發生變化的時候,使用者介面發生相應的變化,我們對檢視的修改,不會直接操作 dom**,而是通過修改資料。它相比我們傳統的前端開發,如使用 jquery 等前端庫直接修改 dom,大大簡化了**量。特別是當互動複雜的時候,只關心資料的修改會讓**的邏輯變的非常清晰,因為dom 變成了資料的對映,我們所有的邏輯都是對資料的修改,而不用碰觸 dom,這樣的**非常利於維護。
那麼vuejs是如何實現這種資料驅動的呢?
這裡就需要談到mvvm設計模式
mvvm主要包含3個部分:model、view和 viewmodel。
model:指的是資料部分
view:指的是檢視部分,對應前端就是dom
viewmodel:就是連線檢視與資料的中介軟體
model和view是不能直接通訊的,而是需要通過viewmodel來實現雙方的通訊。viewmodel相當於乙個觀察者,隨時監聽雙方的動態,以及及時的給對方乙個響應的操作
簡單實現vue資料驅動
let data = , //通過set設定值
get $name() ,
set $age(value) ,
get $age() , //通過get取值
}updata();//初始化介面資訊
function updata() \}/gm;//需要匹配介面上}這種的格式
//match 是匹配到字串 示例中 為}和}
//key 是捕獲分組中內容(無分組時不存在),正規表示式中小括號內的內容為乙個分組,分別為name 和age
return data["$"+key];})}
效果
Vue核心之資料劫持
當前前端界空前繁榮,各種框架橫空出世,包括各類mvvm框架橫行霸道,比如anglar,regular,vue,react等等,它們最大的優點就是可以實現資料繫結,再也不需要手動進行dom操作了,它們實現的原理也基本上是髒檢查或資料劫持。那麼本文就以vue框架出發,探索其中資料劫持的奧秘 本文所選取的...
Vue框架核心之資料劫持
引數obj 目標物件 prop 需要定義的屬性或方法的名稱 descriptor 目標屬性所擁有的特性 可供定義的特性列表 value 屬性的值 writable 如果為false,屬性的值就不能被重寫。get 一旦目標屬性被訪問就會調回此方法,並將此方法的運算結果返回使用者。set 一旦目標屬性被...
Vue框架核心之資料劫持
引數obj 目標物件 prop 需要定義的屬性或方法的名稱 descriptor 目標屬性所擁有的特性 可供定義的特性列表 value 屬性的值 writable 如果為false,屬性的值就不能被重寫。get 一旦目標屬性被訪問就會調回此方法,並將此方法的運算結果返回使用者。set 一旦目標屬性被...