Vue.js 最核心的功能有兩個,一是響應式的數據綁定系統(tǒng),二是組件系統(tǒng)。
-
訪問器屬性
訪問器屬性是對象中的一種特殊屬性,它不能直接在對象中設置,而必須通過 defineProperty() 方法單獨定義。
通過Object.defineProperty()來設置對象自身某個property的屬性;var obj = { }; // 為obj定義一個名為 hello 的訪問器屬性 Object.defineProperty(obj, "hello", { get: function () {return sth}, set: function (val) {/* do sth */} }) obj.hello // 可以像普通屬性一樣讀取訪問器屬性 訪問器屬性的"值"比較特殊,讀取或設置訪問器屬性的值,實際上是調用其內部特性:get和set函數。 obj.hello // 讀取屬性,就是調用get函數并返回get函數的返回值 obj.hello = "abc" // 為屬性賦值,就是調用set函數,賦值其實是傳參;
get 和 set 方法內部的 this 都指向 obj,這意味著 get 和 set 函數可以操作對象內部的值。另外,訪問器屬性的會"覆蓋"同名的普通屬性,因為訪問器屬性會被優(yōu)先訪問,與其同名的普通屬性則會被忽略。
-
極簡雙向數據綁定原理
2.png