直接回答:这类零散问题的答案往往只有一句话:先确认数据类型,再确认浏览器差异,最后才是写法问题,按这个顺序排查能省很多时间。
ResizeObserver 接口可以监听到 Element 的内容区域或 SVGElement的边界框改变。内容区域则需要减去内边距 padding。(有关内容区域、内边距资料见盒子模型 )
ResizeObserver 避免了在自身回调中调整大小,从而触发的无限回调和循环依赖。它仅通过在后续帧中处理 DOM 中更深层次的元素来实现这一点。如果(浏览器)遵循规范,只会在绘制前或布局后触发调用。
自定义发布订阅
封装的方法
1 | export const ev = (eventName, data, once = false) => { |
订阅
1 | document.addEventListener('colorUpdate', (e) => this.onUpdateColor(e.detail)) |
发布
1 | ev('colorUpdate', { color: value }) |
这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。