如何證明 Vue 中有數據代理

一 - 如何證明 Vue 中有數據代理:

vue數據代理:

  • data對象的所有屬性的操作(讀/寫)由vm對象來代理操作

  • 好處: 通過vm對象就可以方便的操作data中的數據

//現在讓我們來寫一個小例子來證明Vue有數據代理的存在

<head>
  <meta charset="UTF-8">
  <title>02_數據代理</title>
  <!-- 這個需要小夥伴們自己去下文件來引入喲 -->
  <script src="./001js/vue.js"></script>
</head>
<body>
  <div id="app">
  </div>

  <script type="text/javascript">
    const vm = new Vue({
      el: '#app',
      data: {
        msg: '哈哈,好開心哦'
      }
    })
    // 如果我們想要訪問 msg 的值
    // 直接這樣寫會報錯:
    console.log(vm.data.msg) //會報錯 Uncaught TypeError: Cannot read property 'msg' of undefined
    // 所以我們打印看看實例對象vm 裏面有什麼呢?
    console.log(vm);// Vue {...}
    // 打印結果發現:
    // vm中只有:_data, $data  這兩種,沒有 data屬性
    // 只能通過這兩個屬性_data, $data來訪問 msg
    console.log(vm._data.msg) //哈哈,好開心哦
    console.log(vm.$data.msg) //哈哈,好開心哦
    // 但是Vue爲了方便我們,說你不用這麼幹,你可以直接點.msg就能訪問到了:
    console.log(vm.msg)  //哈哈,好開心哦
    // 此事證明了:vue中有數據代理,
    //說明了:vm 代理了data,代理者vm,被代理者是data
 </script>
    //下面這張是對應的圖解:

圖片1.png

發佈了19 篇原創文章 · 獲贊 86 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章