执行appendChild或removeChild时,会重新计算布局吗?什么时候重新计算布局? 猜测: * 在事件循环中,有一阶段是留给渲染的,是否是在这时重新计算布局?appandChild或removeChild只是改变了dom。 * 在渲染阶段根据改变的这个dom来重新计算布局。 * 如果我添加了一个元素紧接着又删除了,渲染阶段是根本不知道的。即使这个元素上有动画也是不会出现的。 可以试一下这个例子[codesandbox](https://link.segmentfault.com/?enc=dD6Mi5ysGNPbxw6XaANogA%3D%3D.BBdDvaVzG%2BUUKHNpqEcc8WifPUWgW3dTF8wx6WU7NOCj1ffML7yEu0PGz%2BNE%2FyZpgqTkaPJjFliBBrAbmPYa0Nfc0AXwkNmpbg403ZzLQLw%3D) 其实应该是会重新计算布局的,可以检测一下添加该元素之前和之后其父元素的大小(`offsetHeight ...`),它的大小是会发生变化的。 添加类名(`classList.add`),也会触发重新布局(检测一下添加类名之后,大小或其他样式是否发生变化就可以验证了)。 有一个动画制作的方法flip,就用到了这个同步布局。