懵少女

文章 评论 浏览 31

°懵少女 2022-05-04 13:55:58
<body>
  hello,world
  <input type="text">
  <p></p>
</body>
<script>
  const model = document.getElementById("model")
  const word = document.getElementById("word")
  var obj= {};

  const newObj = new Proxy(obj, {
      get: function(target, key, receiver) {
        console.log(`getting ${key}!`);
        return Reflect.get(target, key, receiver);
      },
      set: function(target, key, value, receiver) {
        console.log('setting',target, key, value, receiver);
        if (key === "text") {
          model.value = value;
          word.innerHTML = value;
        }
        return Reflect.set(target, key, value, receiver);
      }
    });

  model.addEventListener("keyup",function(e){
    newObj.text = e.target.value
  })
</script>

model.value = value; 这一行代码是不是不需要写

第 74 题: 使用 JavaScript Proxy 实现简单的数据绑定

°懵少女 2022-05-04 13:55:21

回溯解决

var entry = {
a: {
b: {
  c: {
    dd: 'abcdd'
  }
},
d: {
  xx: 'adxx'
},
e: 'ae'
}
}

function trans(obj) {
    const result = {};
    for (let k in obj) {
        backtrace([k])
    }
    function backtrace(trace) {
        let o = obj;
        for (let i = 0; i < trace.length; i++) {
            o = o[trace[i]]
        }
        if (typeof o !== 'object') {
            result[trace.join(',')] = o;
            return;
        }
        for (let k in o) {
            trace.push(k);
            backtrace(trace);
            trace.pop();
        }
    }
    return result;
}
console.log(trans(entry))

第 111 题:编程题,写个程序把 entry 转换成如下对象

°懵少女 2022-04-30 19:32:37

@qiangzi7723 文章里其实已经写了,如果希望更多阅读,可以参考:

  1. https://calendar.perfplanet.com/2013/diff/
  2. https://zhuanlan.zhihu.com/p/20346379

为什么一次循环里比较 4 个 vnode?但你可以看到如果 isSameVnode 通过才会处理相应的两个 vnode,然后进入下次循环:

  1. isSameVnode 判断通过说明是新旧队列里的相同的 vnode,当然要做移动/更新处理。
  2. 一次虽然 4 个 vnode 俩俩比较,但最终只处理一对 vnode,对不对?
  3. 如果 isSameVnode 判断都没通过,其实只处理 newStartVnode,要么从旧队列里找到它对应的 vnode 做更新处理,找不到则当作新插入的 vnode 处理。

所以整体逻辑是清晰的。

解析 snabbdom 源码 教你实现精简的 Virtual DOM 库

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文