33+ Câu hỏi phỏng vấn React Native | Hay gặp - Mới nhất
Bạn sắp có buổi phỏng vấn lập trình React Native tới đây? Đừng lo, bài viết này sẽ giúp bạn chuẩn bị thật tốt với các câu hỏi phỏng vấn React Native chi tiết, chuẩn và được nhiều nhà tuyển dụng sử dụng. Đừng bỏ qua bất cứ câu hỏi nào vì nó có thể là 1% thành công của bạn trong việc chớp lấy cơ hội nhận offer React Native development.
Tóm tắt kiến thức React Native cần nắm vững
Lập trình viên React Native là một trong các vị trí công việc IT đi cùng thời đại với các cơ hội việc làm hấp dẫn từ các ông lớn trong ngành công nghệ như Google, Microsoft, Facebook, IBM hay tại Việt Nam có FPT Software, VNG,...
Để chuẩn bị chuyên môn tốt nhất cho buổi phỏng vấn, bạn hãy cố gắng nắm vững những kiến thức cơ bản nhất dưới đây:
1. JavaScript
- Các syntax của JavaScript
- Thao tác với các mảng và đối tượng (map, filter, reduce)
- Async/Await
2. Props và State
- Hiểu bản chất và nắm vững về props và state trong React
- Component lifecycle
3. Component
- Bố cục component (styles, methods,...)
- Phân biệt rõ 2 khái niệm stateless component và stateful component
- Câu hỏi thực hành cho một hình ảnh ví dụ, cần chỉ ra được bố cục và cách tạo ra chúng.
4. RESTful API
- Nắm vững các method cơ bản như GET, POST
- Header, body data, token
5. Mở rộng thêm
- Hiểu mô hình Redux
- Biết dùng thư viện React Navigation, location, image pick, maps,...
- Biết sử dụng animation
- …
Các câu hỏi phỏng vấn React Native intern, fresher
Các câu hỏi phỏng vấn React Native dưới đây đề cập đến kiến thức cơ bản của React Native, kỹ năng lập trình React Native, thư viện React Native hay các vấn đề liên quan đến bảo mật khi phát triển ứng dụng di động bằng React Native.
1. React Native có giống reactjs không?
React Native và Reactjs không giống nhau, điểm khác biệt lớn nhất đó là React Native là framwork chỉ dùng phát triển cho mobile, còn reactjs thì chuyên dùng cho phát triển web.
2. Các thread chạy trong React Native gồm những gì?
2 thread chính đó là: Main thread và JS thread.
3. Nhận định: Ứng dụng React Native là một ứng dụng mobile Native có chính xác không?
Không, ứng dụng React Native là không hoàn toàn là một ứng dụng mobile Native. React Native là một framework phát triển ứng dụng đa nền tảng (cross-platform) cho cả iOS và Android. Ứng dụng React Native được xây dựng bằng JavaScript và react, nó đang cố gắng cung cấp trải nghiệm gần như Native cho end-users thông qua các thành phần UI Native và giao tiếp với API Native của Android và IOS.
React Native sử dụng các component Native để tạo giao diện người dùng, lấy nguyên liệu từ Objective-C hoặc Swift, Java hay Kotlin.
4. Native code có thể dùng được trong React Native không?
Có, có thể dùng Native code trong React Native bên cạnh JavaScript để hoàn thành các tính năng. React Native cung cấp một số tính năng để sử dụng Native code trong ứng dụng như Native Modules, Bridge, Cách tiếp cận hybrid.
5. Ưu điểm khi dùng React Native là gì?
Một số ưu điểm khi sử dụng React Native bao gồm:
- Khả năng tương thích đa nền tảng, tăng hiệu suất phát triển ứng dụng.
- Phản hồi theo thời gian thực nhanh chóng, kịp thời
- UI linh hoạt.
- Tương thích với nhiều plugin của bên thứ ba.
- Tăng khả năng tái sử dụng code bằng việc tái sử dụng các component.
6. Các components cốt lõi của React Native là gì?
Các components lõi của React Native gồm:
- View: Hiển thị toàn bộ bố cục ứng dụng
- Text: Hiển thị văn bản
- TextInput: Nhập văn bản
- ScrollView: Chèn vùng chứa cuộn
- StyleSheet: Chèn các đối tượng kiểu
- Image: Hiển thị hình ảnh
- Button: Chèn nút
- FlatList: Hiển thị danh sách các mục.
- ProgressView: Hiển thị thanh tiến trình
- …
7. Props trong React Native có vai trò gì?
Props (Properties) đóng vai trò như một đối số cho component và cho phép truyền dữ liệu từ component cha sang component con. Nó đóng vai trò quan trọng trong việc quản lý luồng dữ liệu trong ứng dụng React Native và cho phép linh hoạt tùy chỉnh giao diện dựa trên dữ liệu động.
8. Liệu có thể dùng cùng một code cho Android và iOS không?
Có, có thể chúng ta sử dụng cùng một code cho Android và iOS, trong đó React Native giữ vai trò chuyển đổi giữa các Native components. Bởi mục tiêu của React Native đó là cho phép chia sẻ một phần source code JavaScript giữa các nền tảng Android và IOS.
Tuy vậy, vẫn sẽ có một số source code cần được điều chỉnh và viết riêng cho từng nền tảng để phát triển các tính năng, giao diện đặc biệt.
Ví dụ: một component của React Native là ScrollView
- Dùng trong IOS: UiScrollView
- Dùng trong Android: ScrollView
9. Vai trò của AsyncStorage trong React Native là gì?
AsyncStorage là module lưu trữ không được mã hóa, key-value của React Native. Nó cho phép developer lưu trữ dữ liệu để sử dụng ngoại tuyến. Thông thường, nó được dùng để lưu trữ dữ liệu khi ứng dụng không được liên kết với dịch vụ cloud hoặc khi các tính năng cụ thể yêu cầu lưu trữ dữ liệu.
10. Bạn hãy kể tên các ứng dụng mobile nào đang sử dụng React Native
Các công ty lớn đang sử dụng React Native đó là:
- Facebook Ads Manager
- F8
- Airbnb
- Skype
- Tesla
11. XHR Module có tác dụng gì trong React Native?
XHR Module là module JavaScript cho phép thực hiện các XMLHttpRequest để gửi dữ liệu về server.
12. Virtual DOM React Native hoạt động như thế nào?
DOM ảo trong React Native hoạt động tương tự như trong reactjs. Cụ thể:
- Khi một component được tạo, React sẽ tạo một cây DOM ảo đại diện cho giao diện người dùng của component đó.
- Khi trạng thái của component thay đổi, React sẽ cập nhật cây DOM ảo.
- React sẽ so sánh cây DOM ảo hiện tại với cây DOM ảo trước đó, nếu phát hiện có khác biệt, React sẽ áp dụng các thay đổi cần thiết lên DOM thực.
13. Khi nào bạn dùng 1 class component thay vì 1 functional component?
Một số trường hợp nên dùng class component đó là:
- Khi cần quản lý lifecycle method của component
- Khi cần quản lý trạng thái bằng phương thức setState()
- Khi cần sử dụng ref
14. Có tất cả bao nhiêu threads chạy trong React Native?
Có 2 thread đó là JavaScript thread và main UI thread.
JavaScript thread chạy trong thread riêng của nó, không liên quan đến main UI thread. Khi ứng dụng chạy 1 logic phức tạp, UI vẫn chạy mượt mà ngay cả khi chúng có animation hoặc scrolling, bởi vì UI không bị block bởi JS thread.
15. Bạn hãy cho biết State trong React Native là gì?
State trong React Native là một đối tượng JavaScript, đại diện cho dữ liệu của một component, bao gồm thông tin component cần hiển thị và tương tác với UI của nó. State có thể thay đổi được dựa trên các sự kiện hoặc tương tác của người dùng với component bất kỳ.
16. Làm cách nào để nhập các component trong React Native?
Có thể nhập các component từ scratch hoặc cũng có thể nhập các ready-made từ một tệp khác. Để nhập một component, bạn cần dùng lệnh:
17. Ngôn ngữ lập trình nào tương thích với React Native?
Dù React Native thường được sử dụng với JavaScript, nhưng vẫn tương thích với một số ngôn ngữ lập trình khác như Python, C++ và C hoặc cũng có thể thực hiện được qua framework Java Native Interface (JNI).
Câu hỏi phỏng vấn Senior React Native
Bạn có thể dùng các câu hỏi phỏng vấn React Native dưới đây cho lập trình viên React Native level middle, senior đã có một vài năm kinh nghiệm làm việc thực tế trong các dự án phát triển ứng dụng di động với React Native.
1. Bạn có thể nêu vấn đề chính về hiệu suất trong React Native và nguyên nhân gây ra chúng là gì?
Một số vấn đề về hiệu suất phổ biến nhất trong React Native bao gồm:
- Ngốn CPU: Việc giảm tải các hàm phức tạp cho luồng JavaScript có thể gây ra vấn đề về hiệu suất.
- Rò rỉ bộ nhớ: Thông tin có thể bị mất trong Bridge trong quá trình chuyển từ domain Primary sang React Native, đặc biệt là trong các ứng dụng Android.
- Điều hướng chậm: Cầu nối đa luồng cũng có thể khiến thời gian điều hướng chậm hơn.
2. Làm cách nào để tối ưu hóa hiệu suất ứng dụng trong React Native?
Để tối ưu hoá hiệu suất app trong React Native có thể sử dụng một số kỹ thuật sau:
- Xóa tất cả console statements
- Resize và thu nhỏ hình ảnh
- Nén hoặc chuyển đổi dữ liệu JSON thô
- Tách code cho danh sách lớn
- Lên lịch animation
- Xóa các thư viện và tính năng không cần thiết
- …
3. Có những cách nào để styling cho một React Native component?
Có 3 cách để styling cho React Native component:
- Inline styling
- StyleSheet
- Styled Components
4. Bridge trong React Native có vai trò gì?
Bridge (hay JavaScript Bridge) đóng vai trò quan trọng trong việc kết nối JavaScript và code Native (Java hoặc Objective-C/Swift). Vai trò của Bridge được thể hiện qua:
- Cho phép React Native tương tác với các API Native của nền tảng mà ứng dụng đang chạy trên đó thông qua cơ chế gọi hàm và trả dữ liệu.
- Cho phép truy cập và tương tác với các component Native như TextView hoặc UIImageView.
- Tạo các module Native, cung cấp chức năng Native cho JavaScript sử dụng.
- Đảm bảo hiệu suất ứng dụng React Native.
- Quản lý việc thực thi các code JavaScript và code Native trên các luồng khác nhau.
5. Làm thế nào để loại bỏ keyboard trong React Native?
Sử dụng Keyboard.dismiss()
Ví dụ:
import { Keyboard } from 'react-Native'
// Ẩn keyboard
Keyboard.dismiss()
6. Cách để debug React Native app?
Có thể debug bằng 2 cách sau:
- Debug từ xa: Trong IOS và Android, mở menu và chọn 'Debug remotely’'. Nút 'Debug remotely' sẽ khởi chạy công cụ Chrome Developer Tools’ Debugger.
- Debug In-app: Trong IOS và Android, khởi chạy command. Các lệnh này sẽ khởi chạy các công cụ gỡ lỗi in-app trong hệ điều hành liên quan.
7. Làm thế nào để tối ưu hóa hiệu suất của hình ảnh trong React Native?
Một số thủ thuật tối ưu hoá hình ảnh trong React Native như:
- Dùng công cụ lưu trữ hình ảnh.
- Dùng định dạng PNG hoặc WEBP thay vì JPEG.
- Dùng các hình ảnh nhỏ hơn.
- Giảm số lượng kết xuất (render).
8. Làm thế nào để lưu trữ dữ liệu nhạy cảm trong React Native một cách an toàn?
Các dữ liệu của React Native, hầu hết đều được lưu trữ trong Async Storage. Đây là hình thức lưu trữ cục bộ, không được mã hóa, vậy nên nó không phù hợp để lưu trữ dữ liệu nhạy cảm như tokens và mật khẩu.
Ngoài ra, React Native Keychain cung cấp một hình thức lưu trữ an toàn cũng hoạt động tương tự như Async Storage.
- Đối với iOS, Keychain storage có thể được sử dụng để bảo vệ dữ liệu nhạy cảm
- Đối với Android, có thể sử dụng Facebook Conceal và Android Keystone.
9. Vai trò của TouchableOpacity trong React Native là gì?
TouchableOpacity là một component cơ bản và linh hoạt trong React Native, được sử dụng để thay đổi độ trong suốt của nút khi xảy ra sự kiện chạm vào (touch events) từ người dùng trên các thiết bị di động. TouchableOpacity còn có thể được dùng để tạo các button, liên kết văn bản với các thành phần tương tác khác.
10. Làm cách nào để tối ưu hóa các mục FlatList trong React Native?
- Tránh sử dụng hình ảnh HD 1080P
- Tối ưu hóa prop maxToRenderPerBatch
- Sử dụng prop getItemLayout
- Sử dụng prop keyExtractor
- Tối ưu hóa prop windowSize
- Use ít views hơn
- …
11. Khi nào nên sử dụng setNativeProps trong React Native?
setNativeProps trong React Native được sử dụng để thay đổi trực tiếp các thuộc tính Native của một component mà không cần thông qua re-render toàn bộ component. Vì vậy, chỉ nên sử dụng setNativeProps trong một số trường hợp sau:
- Khi cần thay đổi một số thuộc tính Native của một component mà không muốn kích hoạt lại component hay cập nhật state của component đó.
- Khi cần thay đổi kích thước, vị trí, màu sắc của một Native component.
- Khi cần tương tác với code Native mà không cần viết thêm module Native.
- Khi setState và ShouldComponent không giải quyết được vấn đề.
Câu hỏi tình huống phỏng vấn ứng viên React Native
Ngoài các câu hỏi phỏng vấn React Native về chuyên môn, thì những câu hỏi dưới đây sẽ làm khó các ứng viên hơn. Bởi để trả lời được các câu hỏi này, ứng viên không chỉ cần có kiến thức chuyên môn vững, mà còn phải biết các vận dụng kỹ năng và kinh nghiệm cá nhân mới có thể thuyết phục nhà tuyển dụng.
1. Hãy cho biết đoạn code dưới đây có hoạt động không?
ITNavi xin chao
ví dụ về câu hỏi phỏng vấn React Native;
Trả lời:
Không chạy được. Hệ thống sẽ báo có bug vì trong React Native các chuỗi Text phải được hiển thị trong component Text. Ở đây dấu chấm phẩy ở dòng thứ ba sẽ được coi là text. Tức là tất cả text cần được hiển thị bên trong thẻ Text thì đoạn code mới chạy được.
2. Bạn sẽ thực hiện các bước nào trong React Native nếu ứng dụng liên tục gặp sự cố?
Đầu tiên, sử dụng tích hợp báo cáo lỗi của bên thứ ba để hiển thị báo cáo lỗi và chẩn đoán thêm lỗi. Plugin này giúp thu thập, sắp xếp và phân tích các báo cáo sự cố, đồng thời cung cấp các bản sửa lỗi nhanh chóng để ứng dụng có thể sao lưu và chạy. Một số plugin hỗ trợ báo lỗi như:
- Bugsnag
- Crashlytics
- Sentry
- TestFairy
- Rollbar
Ngoài ra, bạn có thể tìm hiểu thêm theo các key dưới đây để luyện tập thêm về các câu hỏi phỏng vấn React Native với tình huống. Các câu hỏi này thường để sàng lọc những ứng viên có tiềm năng trở thành dev lead hoặc nhân sự cấp cao. Vậy nên, chuẩn bị trước không bao giờ là thừa.
- Bạn đã làm React Native được bao lâu rồi?
- Bạn đã từng làm dự án xây ứng dụng React Native nào chưa? Bạn học được gì qua quá trình làm project đó?
- Bạn có kinh nghiệm về định dạng UI trong React Native như StyleSheet, Flexbox, hoặc các thư viện UI như React Native Elements, NativeBase hoặc UI Kitten không?
- Bạn tích hợp các dịch vụ bên ngoài như Firebase, AWS, hoặc các API RESTful thế nào cho project của mình?
- Bạn đã từng gặp phải vấn đề hiệu suất trong quá trình xây app React Native không? Bạn giải quyết những vấn đề đó thế nào?
- Bạn có từng làm qua auto test React Native chưa?
- Bạn đã từng triển khai React Native trên các nền tảng iOS và Android chưa?
Tìm cơ hội việc làm lập trình React Native ở đâu?
ITNavi chính là nền tảng kết nối việc làm IT lý tưởng dành cho bạn. Với danh sách 100+ công ty công nghệ, gồm cả những công ty outsourcing trong nhiều lĩnh vực, ITNavi giúp bạn dễ dàng kết nối với hơn 2000 job IT chất lượng trên toàn cầu.
Muốn “bắt” được các cơ hội ứng tuyển vào vị trí lập trình viên React Native on-site, off-site, hybrid,... hãy truy cập itnavi.com.vn hoặc đăng ký qua form để nhận thông tin mới nhất về việc làm React Native tại Hà Nội, TP Hồ Chí Minh và nhiều tỉnh thành khác.
Kinh nghiệm phỏng vấn React Native khôn khéo
Để tăng khả năng thành công cho buổi phỏng vấn React Native sắp tới, ngoài kiến thức chuyên môn, thì những chuẩn bị về kỹ năng mềm, giao tiếp, xử lý tình huống cũng là điều rất cần thiết. Không một nhà tuyển dụng nào lại chê một ứng viên chuyên môn tốt lại có EQ cao cả. Vậy nên, ITNavi sẽ chia sẻ một số kinh nghiệm cần lưu ý khi đi phỏng vấn React Native sao cho thuyết phục, khôn khéo:
- Chuẩn bị thật kỹ portfolio, đảm bảo trình bày các dự án đã tham gia hoặc sản phẩm bạn đã thực hiện một cách rõ ràng, mạch lạc, dễ hiểu.
- Tìm hiểu kỹ về công ty và vị trí tuyển dụng lập trình React Native để có câu trả lời và cách thể hiện phù hợp với văn hoá công ty.
- Dù mỗi người phỏng vấn chuyên môn sẽ hỏi những câu hỏi phỏng vấn React Native khác nhau, nhưng hãy tự tin và trung thực khi trả lời.
- Và trên hết, thái độ cầu thị, tinh thần ham học hỏi sẽ luôn là điểm sáng của bạn trong mắt nhà tuyển dụng.
Các câu hỏi phỏng vấn React Native từ level fresher, junior, middle, senior cùng kinh nghiệm trả lời phỏng vấn mà ITNavi chia sẻ trên đây sẽ được cập nhật liên tục để hỗ trợ bạn tốt nhất trong thời gian chuẩn bị nắm lấy cơ hội nhận offer việc làm React Native sắp tới.
ITNavi - Nền tảng kết nối việc làm IT
Nguồn: 33+ Câu hỏi phỏng vấn React Native | Hay gặp - Mới nhất