亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

揭东县| 达州市| 常州市| 同江市| 公主岭市| 鞍山市| 肇庆市| 勃利县| 芜湖县| 英吉沙县| 徐州市| 汝南县| 亳州市| 长垣县| 扶沟县| 阿坝| 天津市| 彩票| 施秉县| 泸州市| 彭泽县| 安多县| 图片| 淳安县| 五莲县| 小金县| 宜兰市| 霍州市| 黎川县| 明水县| 乐安县| 浙江省| 山阴县| 巨鹿县| 嘉定区| 中阳县| 克拉玛依市| 伽师县| 天峻县| 威海市| 密山市|