实现React-Diff算法


实现类似React虚拟Dom的Diff算法, 最后输出dom树差异的层级及key的组合字符串

function diff(a, b) {
  let num = 0 // 保存遍历层级
  let str = "" // 输出的差异字符串
  dispatch(a, b)
  function dispatch(a, b) {
    num++
    for (let key in a) {
      const arrOrObj = Array.isArray(a[key]) || Object.prototype.toString.call(a[key]) === "[object Object]"
      if (arrOrObj) {
        dispatch(a[key], b[key])
      } else if (a[key] !== b[key]) {
        str += `${key}${num}-`
      }
    }
  }
  return str
}

文章作者: Assan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Assan !
评论
  目录