MutationObserver可以监测dom变化
const observer = new MutationObserver((mutationsRecord) => {
console.log('DOM元素有变化')
console.log(mutationsRecord)
})
function addItem(){
document.body.className = 'foo'
document.body.setAttribute('name', 'xjp')
}
observer.observe(document.body,{ attributes: true, childList: true, subtree: true })
// childList:设置 true,表示观察目标子节点的变化,比如添加或者删除目标子节点,不包括修改子节点以及子节 点后代的变化
// attributes:设置 true,表示观察目标属性的改变
// characterData:设置 true,表示观察目标数据的改变
// subtree:设置为 true,目标以及目标的后代改变都会观察
// MutationObserver 是异步触发,DOM 发生变动以后,并不会马上触发,而是要等到当前所有 DOM 操作都结束后才触发。