Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon เทคนิคในการลดการเรนเดอร์ซ้ำใน React Native


เทคนิคในการลดการเรนเดอร์ซ้ำใน React Native


หากต้องการลดการเรนเดอร์ซ้ำใน React Native ให้ปฏิบัติตามเทคนิคเหล่านี้:

1. บันทึกช่วยจำ:
- ใช้ `useMemo` เพื่อแคชการคำนวณระหว่างการเรนเดอร์ซ้ำ ป้องกันการเรนเดอร์ซ้ำโดยไม่จำเป็นเมื่ออุปกรณ์ประกอบฉากหรือสถานะไม่มีการเปลี่ยนแปลง[1]

2. รายการเสมือนจริง:
- ใช้ `FlatList`, `SectionList` หรือ `VirtualList` เพื่อแสดงผลเฉพาะรายการที่มองเห็นบนหน้าจอได้อย่างมีประสิทธิภาพ เพิ่มประสิทธิภาพการใช้หน่วยความจำและประสิทธิภาพการเรนเดอร์[1]

3. ปรับภาพให้เหมาะสม:
- ใช้ไลบรารีเช่น `react-native-fast-image` หรือ `expo-image` เพื่อเพิ่มประสิทธิภาพการโหลดและการแคชรูปภาพ เพื่อให้มั่นใจว่าประสบการณ์ผู้ใช้จะราบรื่นยิ่งขึ้น[1]

4. หักล้างการดำเนินการที่มีราคาแพง:
- ป้องกันการเรียกใช้ฟังก์ชันต่างๆ มากเกินไป เช่น การค้นหาและคำขอเครือข่าย โดยการแนะนำช่วงการหน่วงเวลาหรือ "การดีเด้งล่าช้า" ก่อนดำเนินการฟังก์ชัน[1]

5. ใช้ React.memo หรือ React.PureComponent:
- ตรวจสอบให้แน่ใจว่าส่วนประกอบต่างๆ ได้รับการเรนเดอร์ใหม่เฉพาะเมื่ออุปกรณ์ประกอบฉากมีการเปลี่ยนแปลงโดยใช้ `React.memo` หรือ `React.PureComponent`[3]

6. หลีกเลี่ยงการเรนเดอร์ซ้ำโดยไม่จำเป็น:
- ใช้ `useMemo` เพื่อจำกัดเวลาในการอัปเดตออบเจ็กต์ และหลีกเลี่ยงการเรนเดอร์ซ้ำโดยไม่จำเป็นซึ่งเกิดจากค่าตามตัวอักษรของออบเจ็กต์หรือการคำนวณแบบไดนามิก[3]

7. ใช้คีย์เพื่อหลีกเลี่ยงการเรนเดอร์ซ้ำ:
- ใช้คีย์เพื่อหลีกเลี่ยงการเรนเดอร์ซ้ำเมื่อรายการในรายการเปลี่ยนแปลง เพื่อให้มั่นใจว่าการเรนเดอร์และประสิทธิภาพมีประสิทธิภาพ[4]

8. ปรับองค์ประกอบองค์ประกอบให้เหมาะสม:
- ตรวจสอบให้แน่ใจว่าส่วนประกอบต่างๆ ได้รับการประกอบอย่างมีประสิทธิภาพโดยหลีกเลี่ยงการเรนเดอร์ซ้ำโดยไม่จำเป็น และเพิ่มประสิทธิภาพการใช้ hooks เช่น `useMemo` และ `useCallback`[4]

เทคนิคเหล่านี้ช่วยลดการเรนเดอร์ซ้ำใน React Native ทำให้มั่นใจได้ว่าผู้ใช้จะได้รับประสบการณ์ที่ราบรื่นยิ่งขึ้นและประสิทธิภาพดีขึ้น

การอ้างอิง:
[1] https://thintbot.com/blog/optimizing-Performance-in-react-native-tips-and-techniques
[2] https://www.reddit.com/r/reactnative/comments/uaaxyu/tips_on_how_to_reduce_rerenders/
[3] https://www.debugbear.com/blog/react-rerenders
[4] https://dev.to/femi_akinyemi/how-to-prevent-unnecessary-react-component-re-rendering-3c08
[5] https://www.linkedin.com/pulse/avoid-unnecessary-re-renders-reactjs-christian-zanchetta