ทั้งสองทำให้เกิดผลกระทบ แต่ที่ เวลาต่างกัน เมื่อเทียบกับการวาด — และความแตกต่างของเวลานี้คือประเด็นทั้งหมด
useEffectทำงาน หลังจาก เบราว์เซอร์วาด มันไม่ซิงโครนัสและไม่บล็อก ใช้เพื่อเกือบทุกอย่าง (ข้อมูล การสมัครสมาชิก การบันทึก)useLayoutEffectทำงาน พร้อมกันหลังจาก DOM ถูกเปลี่ยนแปลง แต่ก่อนที่เบราว์เซอร์จะวาด ใช้เมื่อคุณต้องอ่านเค้าโครงและเปลี่ยน DOM ในเฟรมเดียวกันเพื่อหลีกเลี่ยงการกระพริบที่มองเห็นได้
