Cả hai đều chạy effect, nhưng tại các thời điểm khác nhau so với lúc trình duyệt vẽ (paint) — và sự khác biệt thời điểm đó chính là điểm mấu chốt.
useEffectchạy sau khi trình duyệt đã vẽ. Nó bất đồng bộ và không chặn. Dùng cho gần như mọi thứ (dữ liệu, subscription, log).useLayoutEffectchạy đồng bộ sau khi DOM được sửa đổi nhưng TRƯỚC khi trình duyệt vẽ. Dùng khi bạn phải đọc layout và thay đổi DOM trong cùng một frame để tránh nhấp nháy nhìn thấy được.
