Quản lý bộ nhớ
Memory leak, cleanup, useEffect cleanup, listeners, timers, xử lý hình ảnh lớn
1Memory leak trong ứng dụng React Native là gì?
Memory leak trong ứng dụng React Native là gì?
Câu trả lời
Memory leak xảy ra khi các đối tượng trong bộ nhớ không còn được ứng dụng sử dụng nhưng không thể được garbage collector giải phóng vì các tham chiếu đến chúng vẫn còn tồn tại. Trong React Native, điều này thường xảy ra với các subscription chưa được dọn dẹp, các timer vẫn hoạt động sau khi unmount, hoặc các closure giữ tham chiếu cũ. Memory leak làm giảm hiệu năng dần dần và có thể gây crash trong các phiên dài.
2Vai trò của hàm trả về (cleanup function) trong useEffect đối với việc quản lý bộ nhớ là gì?
Vai trò của hàm trả về (cleanup function) trong useEffect đối với việc quản lý bộ nhớ là gì?
Câu trả lời
Cleanup function được useEffect trả về sẽ chạy trước khi component bị unmount hoặc trước khi effect được chạy lại với các dependency mới. Vai trò chính của nó là dọn dẹp các tài nguyên do effect cấp phát: hủy subscription, clearTimeout/clearInterval, gỡ event listener, hoặc hủy các request đang chờ. Nếu không dọn dẹp, các tài nguyên này vẫn tồn tại trong bộ nhớ và có thể cố gắng cập nhật một component đã bị unmount.
3Tại sao việc dùng clearTimeout và clearInterval trong cleanup function của useEffect lại quan trọng?
Tại sao việc dùng clearTimeout và clearInterval trong cleanup function của useEffect lại quan trọng?
Câu trả lời
Các timer được tạo bằng setTimeout và setInterval vẫn tiếp tục chạy ngay cả sau khi component unmount. Nếu callback của timer cố gắng cập nhật state của một component đã unmount, nó sẽ kích hoạt cảnh báo 'Can't perform a React state update on an unmounted component' và tạo ra một memory leak. Timer giữ một tham chiếu đến callback và closure của nó, khiến garbage collector không thể giải phóng các tài nguyên này. Dùng clearTimeout/clearInterval trong cleanup đảm bảo hủy các timer này một cách đúng đắn.
Làm thế nào để ngăn memory leak khi sử dụng event listener trong React Native?
Closure có tác động gì đến việc quản lý bộ nhớ trong các component React Native?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn React Native khác
Kiến thức cơ bản về JavaScript
Kiến thức cơ bản về React
Kiến thức cơ bản về React Native
React Hooks
TypeScript cho React & React Native
Thành phần & API React Native
Styling & Layout trong React Native
Điều hướng React Native
Quản lý State trong React Native
Networking & API trong React Native
Lưu trữ dữ liệu bền vững
Form & Validation
Animation trong React Native
Native Modules & Bridge
Mã đặc thù theo nền tảng
Quyền & Device API
Push Notifications
Testing React Native
Debugging React Native
Build & Deployment
Expo vs React Native Bare
Tối ưu hóa hiệu suất
Architecture Patterns
New Architecture của React Native
Các Phương Pháp Bảo Mật Tốt Nhất
Offline-First Architecture
CI/CD React Native
Monorepo & Chia sẻ mã
Chủ đề nâng cao
Vòng đời ứng dụng & Thực thi nền
Xác thực & Quản lý phiên
Monitoring & Crash Reporting
Nắm vững React Native cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí