# การจัดการหน่วยความจำ (React Native) > Memory leaks, cleanup, useEffect cleanup, listeners, timers, การจัดการรูปภาพขนาดใหญ่ - 20 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions.md) ## 1. memory leak ในแอปพลิเคชัน React Native คืออะไร? **คำตอบ** memory leak เกิดขึ้นเมื่อออบเจกต์ในหน่วยความจำไม่ถูกใช้งานโดยแอปพลิเคชันอีกต่อไป แต่ garbage collector ไม่สามารถคืนหน่วยความจำได้เพราะยังมีการอ้างอิงถึงออบเจกต์เหล่านั้นอยู่ ใน React Native มักเกิดจาก subscription ที่ไม่ได้ทำ cleanup, timer ที่ยังทำงานอยู่หลังจาก unmount หรือ closure ที่จับการอ้างอิงเก่าเอาไว้ memory leak จะค่อย ๆ ลดประสิทธิภาพและอาจทำให้แอปแครชในเซสชันที่ยาวนาน ## 2. ฟังก์ชันที่ return ออกมา (cleanup function) ใน useEffect มีบทบาทอย่างไรในการจัดการหน่วยความจำ? **คำตอบ** cleanup function ที่ useEffect return ออกมาจะถูกเรียกก่อนที่ component จะถูก unmount หรือก่อนที่ effect จะถูกเรียกใหม่ด้วย dependency ใหม่ บทบาทหลักของมันคือการเคลียร์ทรัพยากรที่ effect จองไว้ เช่น ยกเลิก subscription, clearTimeout/clearInterval, ลบ event listener หรือยกเลิก request ที่ค้างอยู่ หากไม่มี cleanup นี้ ทรัพยากรเหล่านี้จะยังคงอยู่ในหน่วยความจำและอาจพยายามอัปเดต component ที่ถูก unmount ไปแล้ว ## 3. ทำไมการใช้ clearTimeout และ clearInterval ใน cleanup function ของ useEffect จึงสำคัญ? **คำตอบ** timer ที่สร้างด้วย setTimeout และ setInterval จะยังคงทำงานต่อแม้หลังจาก component ถูก unmount แล้ว หาก callback ของ timer พยายามอัปเดต state ของ component ที่ถูก unmount จะทำให้เกิด warning 'Can't perform a React state update on an unmounted component' และกลายเป็น memory leak timer จะเก็บการอ้างอิงไปยัง callback และ closure ของมัน ทำให้ garbage collector ไม่สามารถคืนทรัพยากรเหล่านี้ได้ การใช้ clearTimeout/clearInterval ใน cleanup ช่วยให้ยกเลิก timer เหล่านี้ได้อย่างถูกต้อง ## มีอีก 17 คำถาม - จะป้องกัน memory leak อย่างไรเมื่อใช้ event listener ใน React Native? - closure ส่งผลต่อการจัดการหน่วยความจำในคอมโพเนนต์ React Native อย่างไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ React Native อื่นๆ - [พื้นฐาน JavaScript](https://sharpskill.dev/th/technologies/react-native/interview-questions/javascript-essentials.md): 25 คำถาม, Junior - [พื้นฐาน React](https://sharpskill.dev/th/technologies/react-native/interview-questions/react-fundamentals.md): 20 คำถาม, Junior - [พื้นฐาน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/react-native-basics.md): 22 คำถาม, Junior - [React Hooks](https://sharpskill.dev/th/technologies/react-native/interview-questions/react-hooks.md): 20 คำถาม, Junior - [TypeScript สำหรับ React และ React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/typescript-for-react-native.md): 22 คำถาม, Junior - [คอมโพเนนต์และ API ของ React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-components-api.md): 20 คำถาม, Junior - [การจัดสไตล์และเลย์เอาต์ใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-styling-layout.md): 18 คำถาม, Junior - [การนำทางใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-navigation.md): 22 คำถาม, Mid-Level - [การจัดการ State ใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-state-management.md): 24 คำถาม, Mid-Level - [Networking และ API ใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-networking-api.md): 20 คำถาม, Mid-Level - [การคงอยู่ของข้อมูล](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-data-persistence.md): 20 คำถาม, Mid-Level - [ฟอร์มและการตรวจสอบความถูกต้อง](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-forms-validation.md): 18 คำถาม, Mid-Level - [แอนิเมชัน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-animations.md): 22 คำถาม, Mid-Level - [Native Modules & Bridge](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-native-modules.md): 20 คำถาม, Mid-Level - [โค้ดเฉพาะแพลตฟอร์ม](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-platform-specific-code.md): 18 คำถาม, Mid-Level - [สิทธิ์และ Device API](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-permissions-apis.md): 20 คำถาม, Mid-Level - [Push Notifications](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-push-notifications.md): 18 คำถาม, Mid-Level - [การทดสอบ React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-testing.md): 20 คำถาม, Mid-Level - [การ Debug React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-debugging.md): 18 คำถาม, Mid-Level - [Build & Deployment](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-build-deployment.md): 20 คำถาม, Mid-Level - [Expo vs React Native Bare](https://sharpskill.dev/th/technologies/react-native/interview-questions/expo-vs-bare-rn.md): 18 คำถาม, Mid-Level - [การเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-performance-optimization.md): 24 คำถาม, Senior - [Architecture Patterns](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-architecture-patterns.md): 22 คำถาม, Senior - [React Native New Architecture](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-new-architecture.md): 24 คำถาม, Senior - [แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-security-best-practices.md): 20 คำถาม, Senior - [Offline-First Architecture](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-offline-first.md): 20 คำถาม, Senior - [CI/CD React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-ci-cd.md): 20 คำถาม, Senior - [Monorepo และการแชร์โค้ด](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-monorepo-architecture.md): 18 คำถาม, Senior - [หัวข้อขั้นสูง](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-advanced-topics.md): 22 คำถาม, Senior - [วงจรชีวิตแอปและการทำงานเบื้องหลัง](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-app-lifecycle-background.md): 20 คำถาม, Mid-Level - [การยืนยันตัวตนและการจัดการเซสชัน](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-auth-session-management.md): 22 คำถาม, Mid-Level - [Monitoring & Crash Reporting](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-monitoring-crash-reporting.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-memory-management