𝗦𝘁𝗼𝗽 𝗕𝗹𝗼𝗰𝗸𝗶𝗻𝗴 𝗧𝗵𝗲 𝗨𝗜: 𝗜𝗻𝘁𝗲𝗿𝗿𝘂𝗽𝘁𝗶𝗯𝗹𝗲 𝗥𝗲𝗻𝗱𝗲𝗿𝗶𝗻𝗴 𝗜𝗻 𝗥𝗲𝗮𝗰𝘁
การเรนเดอร์ของ React สามารถทำให้ User Interface (UI) ของคุณค้างได้
การคำนวณที่หนักหน่วงจะบล็อก Main Thread ทำให้ผู้ใช้เห็นหน้าจอค้าง ซึ่งจะทำลายประสบการณ์การใช้งาน
Interruptible rendering ช่วยแก้ปัญหานี้ โดยช่วยให้ React สามารถหยุดพักงานชั่วคราวเพื่อไปจัดการกับการตอบสนอง (input) ของผู้ใช้ได้
หลักการทำงาน:
- React แบ่งงานออกเป็นส่วนย่อยๆ
- มันจะคอยตรวจสอบงานที่มีความสำคัญสูง เช่น การคลิกหรือการพิมพ์
- หากผู้ใช้มีการโต้ตอบ React จะหยุดงานที่ทำอยู่เบื้องหลังไว้ก่อน
- React จะจัดการกับ input นั้นก่อน
- React จึงค่อยกลับมาทำงานเบื้องหลังต่อในภายหลัง
คุณสามารถใช้ transitions ในการจัดการเรื่องนี้ โดยใช้ useTransition เพื่อระบุการอัปเดตที่ไม่เร่งด่วน ซึ่งจะเป็นการบอกให้ React รักษาความลื่นไหล (responsive) ของ UI เอาไว้
อย่าปล่อยให้การประมวลผลข้อมูลที่หนักหน่วงมาทำลายประสิทธิภาพของแอปคุณ
ที่มา: https://dev.to/iprajapatiparesh/stop-blocking-the-ui-interruptible-rendering-in-react-32mb