vue雙向數據綁定實現(xiàn)原理

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

原博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容