proxy

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>proxy第三遍</title>
  </head>
  <body>
    <input type="text" id="input" />
    <p id="show"></p>
    <script>
      let obj = {};
      const input = document.getElementById('input');
      const show = document.getElementById('show');
      let newObj = new Proxy(obj, {
        set(target, key, value) {
          // vue3中此段代码采用发布订阅模式,传递到订阅者调用模板解析,diff对比改变,更新;
          if (key === 'text') {
            input.value = value;
            show.innerHTML = value;
          }

          return Reflect.set(target, key, value);
        },
        get(target, key) {
          return Reflect.get(target, key);
        }
      });
      input.addEventListener('keyup', function (e) {
        newObj.text = e.target.value;
      });
      let a = `Proxy数据劫持
               1:数据劫持
               2观察者
               3数据解析{{}} 指令
               js对象
               diff算法
               dom;`;
</script>
  </body>
</html>

 

posted @ 2022-05-04 15:22  苹果π  阅读(26)  评论(0编辑  收藏  举报