การเทียบเท่า componentDidMount ใน hooks คือ ฟังก์ชั่น useEffect ฟังก์ชันที่ส่งไปยัง useEffect จะถูกดำเนินการในทุกองค์ประกอบที่เรนเดอร์ - เว้นแต่คุณจะส่งอาร์กิวเมนต์ที่สองไปที่มัน
การใช้งานมีผลอย่างไร
useEffect ทำอะไร? เมื่อใช้ Hook นี้ คุณบอก React ว่าคอมโพเนนต์ของคุณต้องทำอะไรหลังจากเรนเดอร์ React จะจดจำฟังก์ชันที่คุณส่งผ่าน (เราจะเรียกว่า "เอฟเฟกต์") และเรียกใช้ในภายหลังหลังจากดำเนินการอัปเดต DOM
ส่วนประกอบติดตั้ง React hook หรือไม่
useEffect เป็น React hook ที่คุณสามารถใช้ผลข้างเคียง เช่น รับข้อมูลจากเซิร์ฟเวอร์ อาร์กิวเมนต์แรกคือการเรียกกลับที่จะถูกไล่ออกหลังจากเค้าโครงเบราว์เซอร์และระบายสี
ทำไมไม่เรียก useEffect
สาเหตุที่เกิดขึ้นเป็นเพราะการเรียก API เป็นแบบอะซิงโครนัส มันไม่เติมสถานะทันที ดังนั้นการแสดงจึงเกิดขึ้นก่อนและพยายามอ่าน ปัจจุบันจากสถานะสภาพอากาศเริ่มต้นเป็นโมฆะ วิธีแก้ไข: ในวิธีการเรนเดอร์ของคุณ อย่าอ่านสภาพอากาศ
useEffect ทำงานบน Mount เสมอหรือไม่
สำคัญ: useEffect hook จะทำงานบนการเมานต์เสมอโดยไม่คำนึงถึง หากมีอะไรอยู่ในอาร์เรย์การพึ่งพา เราอาจไม่ต้องการเรียกใช้เอฟเฟกต์นี้กับข้อมูลของเราจริง ๆ เมื่อไม่มีการกำหนด (เนื่องจากจะเป็นการเรนเดอร์เริ่มต้น) แต่เราต้องการรอจนกว่าจะมีการเติมข้อมูลจากการเรียก API