So sánh giữa React Native và ReactJS
Chắc hẳn nhiều người vẫn thường hay nhầm lẫn giữa React Native và ReactJS. Bài viết dưới đây sẽ chỉ ra điểm khác nhau giữa hai Framework này nhé!
Ứng dụng thư viện
ReactJS ra đời vào năm 2011, là thư viện JavaScript được Facebook tạo nên nhằm giải quyết một số vấn đề về Performance cho các ứng dụng web.
React Native xuất hiện 4 năm sau đó, khi ReactJS đã có chút tiếng tăm trong giới lập trình web. Đây là Framework dùng để phát triển các ứng dụng mobile trên hai hệ điều hành Android và iOS.
Điểm tương đồng duy nhất giữa React Native và ReactJS là ngôn ngữ lập trình JavaScript, còn lại thì khác nhau hoàn toàn.
Khởi tạo một dự án
Trước khi bắt đầu chạy một dự án mới với ReactJS, Developer phải cố gắng tìm ra và lựa chọn các module cần thiết, cũng như tốt nhất.
Trong khi đó, React Native lại có sẵn mọi thứ cần thiết. Bạn có thể viết ngay ứng dụng bằng React Native dễ dàng, chỉ với một dòng Command. Điều này đã khiến nhiều người chuyển sang học React Native thay vì ReactJS.
Về ngôn ngữ HTML
Trên thực tế, React Native không sử dụng HTML để hiển thị giao diện ứng dụng "vì khi sử dụng HTML, tốc độ React Native sẽ chậm lại và như vậy thì chẳng khác gì tạo web app rồi nhúng vào webview". Nó cung cấp các component thay thế và hoạt động theo cách tương tự. Hầu hết chúng đều có thể được biên dịch sang một phần tử tương đương trong HTML.
Do không hiển thị mã trong một trang HTML, nên đồng nghĩa với việc thư viện của ReactJS không thể nào sử dụng được trong ứng dụng React Native.
Vì vậy, React Native không sử dụng tham số, tương tự như Flexbox.
Gestures và Animations
Với React Native, bạn sẽ phải tìm hiểu một cách hoàn toàn mới để làm động các Component khác nhau bằng JavaScript. Hãy sử dụng một thư viện tương tự như Velocity.js, có tên là Animated do React Native cung cấp. Nó còn cung cấp Layout Animation rất hay và đơn giản để sử dụng cho quá trình Transitions, nhưng chỉ có iOS mới được hỗ trợ.
Nhằm giúp người dùng dễ dàng tương tác, React Native đã cung cấp Pan Responder. Khi áp dụng nó vào một View (hoặc văn bản, hình ảnh), bạn có thể kích hoạt và xử lý các thao tác chạm của người dùng chẳng hạn như On Pan Responder Grant (Touchstart), On Pan Responder Move (Touchmove) hoặc On Pan Responder Release (Touchend).
Những điểm khác biệt còn lại
React Native và ReactJS vẫn còn nhiều điểm khác biệt, nhưng vẫn có sự liên quan đến nhau. Các chuyên gia Developer cho rằng, cả hai thư viện này đều đang thiếu tài liệu, vấn đề vẫn đang được các nhà phát hành khắc phục.
React Native sử dụng ReactJS làm thư viện JavaScript chính. Vì vậy, nếu muốn trở thành Developer chuyên nghiệp hay xây dựng một ứng dụng đa nền tảng, bạn phải có lượng kiến thức chuyên sâu về JavaScript, cũng như kiến thức về cú pháp của ReactJS.
Ngoài ra, trong khuôn khổ React Native, bạn đều có thể sử dụng các công cụ dành cho ReactJS. Ví dụ như công cụ Redux DevTools kiểm tra trạng thái của Redux hoặc công cụ Chrome Dev để hiển thị Console Logs hay Inspecting, để kiểm tra các yêu cầu mạng.
Cả hai thư viện React Native và ReactJS đều mang lại những lợi ích tuyệt vời cho các Developer. Tuy nhiên, bạn cần phải nhớ những điểm sau:
- React Native là Framework, còn ReactJS là một thư viện JavaScript.
- React Native không sử dụng HTML.
- React Native và ReactJS đều dựa trên Component - Based.
- Bạn có thể viết các Native Mobile Components trong React Native để tạo cảm giác ứng dụng này thực sự dành cho thiết bị di động.