91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue數據雙向綁定底層實現原理

發布時間:2020-09-10 04:19:02 來源:腳本之家 閱讀:158 作者:why_Because 欄目:web開發

簡介:

Vue 最獨特的特性之一,是其非侵入性的響應式系統。數據模型僅僅是普通的 JavaScript 對象。而當你修改它們時,視圖會進行更新。簡單的說,就是數據變視圖變。

當你把一個普通的 JavaScript 對象傳給 Vue 實例的 data 選項,Vue 將遍歷此對象所有的屬性,并使用 Object.defineProperty 把這些屬性全部轉為 getter/setter。Object.defineProperty 是 ES5 中一個無法 shim 的特性,這也就是為什么 Vue 不支持 IE8 以及更低版本瀏覽器。

下例為模擬,Vue數據雙向綁定底層實現原理

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>數據雙向綁定底層實現</title>
</head>
<body>
  <button onclick="changeTest()">點我改變</button>
  <div id="test">哈哈哈</div>

  <script>
    let test={};
    let middle='';
    Object.defineProperty(test,'name',{
      set(val){
        console.log('觸發setter');//設置、修改時觸發set
        middle=val;
        watcher();
      },
      get(){
        console.log('觸發geter');//獲取、使用時觸發get
        return middle;
      }
    })
    function changeTest(){
      test.name="變變變";//觸發setter
    }
    function watcher(){
      document.getElementById('test').innerHTML=test.name;//觸發get
    }
  </script>
</body>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴宁市| 沽源县| 团风县| 九寨沟县| 襄樊市| 鄂伦春自治旗| 江永县| 肇东市| 保定市| 丹江口市| 冀州市| 景洪市| 合肥市| 大渡口区| 武威市| 延吉市| 板桥市| 嘉定区| 邹平县| 大悟县| 江陵县| 焦作市| 肇庆市| 祁门县| 安吉县| 繁峙县| 仁布县| 浏阳市| 印江| 阳朔县| 潍坊市| 大同县| 合川市| 莆田市| 乌鲁木齐市| 大关县| 建湖县| 留坝县| 宝山区| 普格县| 房产|