useEffect
#HelloFrontend #HelloErmine #HelloWorld2021
useEffect ใช้ทำอะไร ?
ใช้ในการจัดการกับ side effect ของ function component เช่น การดึงข้อมูลมาแสดง การอัปเดต title ให้กับหน้าเว็บไซต์ เป็นต้น
ข้อกำหนดในการใช้งาน
ต้องเรียกใช้ภายใน function component เท่านั้น
ต้องเรียกใช้อยู่ด้านบนสุดของ function component
ต้องมีลำดับการเรียกที่เหมือนเดิมทุก ๆ render (ไม่เรียกใช้ใน condition หรือ loop)
ค่าที่ useEffect รับได้
[ต้องใส่]
effect (function ที่จะให้ทำงานหลัง render)[ไม่ใส่ก็ได้]
dependency array (array ที่มีสมาชิกเป็นค่าที่เราสนใจ)
useEffect ทำงานยังไง ?
เมื่อ component render ครั้งแรก : effect จะทำงาน 1 ครั้ง
render ครั้งต่อ ๆ ไป : ขึ้นอยู่กับ dependency array
ถ้าเป็น array ที่มีสมาชิก : effect จะทำงานเมื่อมีค่าของสมาชิกตัวใดตัวหนึ่งเปลี่ยนไปจาก render ครั้งก่อน
ถ้าเป็น array เปล่า ๆ : effect จะไม่ทำงานอีกเลย
ถ้าไม่ใส่ dependency array : effect จะทำงานทุก render
ตัวอย่างการใช้
จากตัวอย่างข้างต้น useEffect รับ function ที่จะทำการเปลี่ยนค่า document.title
ทุก ๆ ครั้งเมื่อเกิดการ render
แหล่งอ้างอิง
Last updated
Was this helpful?