MutationObserver

2021-05-13  本文已影响0人  绝尘kinoko

今天在看vue源码nextTick实现部分发现如下代码

let counter = 1
const observer = new MutationObserver(flushCallbacks)
const textNode = document.createTextNode(String(counter))
observer.observe(textNode, {
  characterData: true
})
timerFunc = () => {
  counter = (counter + 1) % 2
  textNode.data = String(counter)
}

判断可用MutationObserver的情况下赋予timerFunc实体
看了MDN后大概知道是怎么异步执行的,但是其中config部分不是很明白,文档没有解释,只有三个枚举。
首先是自己测试

function fn (mutationsList, observer) {
  console.log(mutationsList, observer)
}
let ob = new MutationObserver(fn)
let text = document.createTextNode('1')
ob.observe(text, {
  characterData: true
})
// trigger
text.data = '2'

console结果

console.png
因为我没有对dom结构操作,所以关心的还是type,只知道修改TextNode.data属于characterData改动。
测试无果,百度如下:
MutationObserver Config
上一篇 下一篇

猜你喜欢

热点阅读