Những câu hỏi phỏng vấn React bạn nên chuẩn bị
Bởi Aaron Cao · Cập nhật

Trước tiên hãy chuẩn bị cho các câu hỏi về hooks: useState, mảng dependency của useEffect, và stale closure. Tiếp theo là rendering: reconciliation, vì sao key trong danh sách lại quan trọng, và cách kiểm soát re-render bằng memo, useMemo, và useCallback. Hầu hết các quy trình còn thêm một bài tập lập trình trực tiếp, thường là lấy dữ liệu rồi lọc danh sách, hoặc một ô tìm kiếm có debounce.
Những khái niệm React nào hay được hỏi nhất?
Phạm vi kiến thức của React rất rộng, và các danh sách câu hỏi thường coi mọi ngóc ngách đều có xác suất được hỏi như nhau. Thực tế không phải vậy. Phần này tập trung vào những khái niệm thực sự quyết định kết quả của phần lớn buổi phỏng vấn, để bạn luyện tập theo đúng phân bố thực tế. Bốn nhóm chiếm ưu thế:
- Cơ chế của hooks: quy tắc của hooks, những gì đưa vào mảng dependency của useEffect, hàm cleanup, và lỗi stale closure khi một effect hoặc callback nhìn thấy một giá trị state cũ.
- Rendering: điều gì gây ra re-render, reconciliation so sánh các cây như thế nào, và vì sao key ổn định lại quan trọng trong danh sách.
- Thiết kế state: đẩy state lên (lifting state), input được kiểm soát so với không được kiểm soát, và khi nào context phù hợp hơn một store bên ngoài.
- Hiệu năng: React.memo, useMemo, useCallback, và khi nào mỗi cái trong số đó là nhiễu chứ không phải hỗ trợ.
Người phỏng vấn sẽ đào sâu vào lý do đằng sau mỗi điểm. Đọc thuộc lòng rằng key phải là duy nhất không được tính điểm; giải thích được React làm gì với một key khi danh sách sắp xếp lại thì có.
Nên chuẩn bị cho những bài live coding nào?
Phần lớn các vòng phỏng vấn React đều có phần dựng một component nhỏ trực tiếp. Các bài tập lặp lại khá ổn định giữa các công ty:
- Lấy một danh sách từ API, render nó, và thêm bộ lọc theo văn bản.
- Thêm debounce cho ô tìm kiếm và hủy các request đã cũ.
- Dựng một form có validation và các input được kiểm soát.
- Viết một bộ đếm hoặc bộ đếm giờ dọn dẹp effect của nó đúng cách.
- Tách một custom hook ra từ logic bị lặp lại.
Ví dụ, một kỹ sư front-end phỏng vấn cho vị trí product cấp trung có thể phải dựng danh sách lấy-dữ-liệu-rồi-lọc, sau đó bị hỏi thêm về trạng thái loading, trạng thái lỗi, và điều gì xảy ra khi component bị unmount giữa lúc đang có request. Phần mở rộng mới là thứ quyết định thắng thua; bài tập cơ bản chỉ là điều kiện tối thiểu.
Luyện tập những bài này dưới áp lực thời gian cùng các câu hỏi truy vấn tiếp theo chính là cách khiến chúng trở thành phản xạ; trang phỏng vấn thử nói về cách chạy các phiên có giới hạn thời gian mà người phỏng vấn liên tục truy vấn.
Câu hỏi React ở cấp độ senior trông như thế nào?
Các vòng phỏng vấn senior chuyển trọng tâm từ cơ chế sang khả năng phán đoán. Hãy chuẩn bị cho các câu hỏi về kiến trúc state: cái gì nằm trong state của component, cái gì thuộc về store, state của server khác state của UI ra sao, và cache nên đặt ở lớp nào. Câu hỏi về hiệu năng rendering trở nên cụ thể hơn: tìm nguồn gốc của một tương tác chậm, quyết định giữa memoization và tái cấu trúc, và đọc flame graph của profiler.
Server-side rendering và hydration xuất hiện khi đội ngũ chạy một framework trên nền React: hydration là gì, vì sao xảy ra sai lệch (mismatch), và việc chuyển công việc sang server mang lại lợi ích gì. Câu hỏi về testing tập trung vào chiến lược, tức là nên test gì ở cấp component so với end to end, hơn là API của một thư viện cụ thể.
Các hình thức phỏng vấn và cách một quy trình front-end thường sắp xếp những vòng này được trình bày trong trang tổng hợp các loại phỏng vấn.
Luyện tập thế nào để áp dụng được vào buổi phỏng vấn thật?
Xem hướng dẫn chỉ tạo ra sự nhận diện quen mắt, không tạo ra khả năng nhớ lại, trong khi buổi phỏng vấn lại kiểm tra khả năng nhớ lại khi đang bị quan sát. Cách khắc phục là luyện tập lặp lại đúng hình thức thật của buổi phỏng vấn: dựng các bài tập tiêu chuẩn từ một file trống, vừa gõ vừa thuyết minh, và trả lời các câu hỏi ngắt ngang mà không mất mạch suy nghĩ. Bộ câu hỏi cho các stack liền kề, kể cả kiến thức nền JavaScript thuần mà các vòng phỏng vấn React vẫn thường mở đầu bằng, có ở trang tổng hợp ngân hàng câu hỏi.
Một lưu ý thẳng thắn: các buổi phỏng vấn React gần như luôn diễn ra trong một trình soạn thảo dùng chung hoặc với màn hình của bạn hiển thị, và bất cứ thứ gì trên màn hình đó đều lộ ra với người phỏng vấn. Một trợ lý nên có chỗ đứng trong lúc chuẩn bị và luyện tập, chứ không phải trong chính buổi phỏng vấn chia sẻ màn hình. Với việc sử dụng trực tiếp hợp lệ, lớp phủ của SubcueAI luôn ở cục bộ trên máy của bạn và không có bot nào tham gia cuộc gọi; cách thiết lập cho các phiên luyện tập có ở trang hướng dẫn.
Câu hỏi thường gặp
Tôi có còn cần biết về class component không?
Câu hỏi về hooks thực sự đi sâu đến đâu?
Câu hỏi về Next.js có nằm trong phỏng vấn React không?
Redux có còn được hỏi trong phỏng vấn không?
Câu hỏi liên quan
- Tôi nên chuẩn bị những câu hỏi phỏng vấn Databricks nào?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn .NET nào?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn kỹ sư chất lượng nào?
- Tôi nên dự kiến những câu hỏi nào trong phỏng vấn định lượng?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn Snowflake nào?
- Tôi nên chuẩn bị cho những câu hỏi phỏng vấn giáo viên nào?