直接回答:这类零散问题的答案往往只有一句话:先确认数据类型,再确认浏览器差异,最后才是写法问题,按这个顺序排查能省很多时间。

ResizeObserver 接口可以监听到 Element 的内容区域或 SVGElement的边界框改变。内容区域则需要减去内边距 padding。(有关内容区域、内边距资料见盒子模型 )

ResizeObserver 避免了在自身回调中调整大小,从而触发的无限回调和循环依赖。它仅通过在后续帧中处理 DOM 中更深层次的元素来实现这一点。如果(浏览器)遵循规范,只会在绘制前或布局后触发调用。

自定义发布订阅

封装的方法

1
2
3
4
export const ev = (eventName, data, once = false) => {
const e = new CustomEvent(eventName, { detail: data }, { once })
document.dispatchEvent(e)
}

订阅

1
document.addEventListener('colorUpdate', (e) => this.onUpdateColor(e.detail))

发布

1
ev('colorUpdate', { color: value })

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。

站内搜索

没有找到内容!