Sự khác biệt giữa React Native và ReactJS

Sự khác biệt giữa React Native và ReactJS
Cùng Tự học lập trình tìm hiểu sự khác biệt giữa hai ngôn ngữ này, để có lựa chọn phù hợp với mục đích sử dụng của mình.

Sứ mệnh của của thư viện React Native và ReactJS

ReactJS đóng vai trò như một thư viện trong Front End, sử dụng ngôn ngữ JavaScript được tạo ra bởi Facebook để giải quyết các vấn đề về trình bày cũng khả năng tương thích khi sử dụng trên các ứng dụng web. Sự ra đời của nó mang đến triển vọng mới cho trang hiển thị nhằm tạo ra sự trải nghiệm linh động cùng với sự trải nghiệm nhanh nhạy cho người dùng.

Đối với React Native, nó là một framework được dùng cho sự phát triển các ứng dụng mobile (Android và iOS). Được ra đời sau khi ReactJS được sử dụng phổ biến trong giới lập trình. 

Sự khác biệt giữa React Native và ReactJS

HTML - điểm khác biệt lớn

React Native không sử dụng HTML để hiển thị nội dung, nhưng nó cung cấp các thành phần hoạt động tương tự, hoặc có thể biến đổi thành các phần tử tương tự trong HTML. Thêm nữa chúng cũng không sử dụng thẻ CSS.

Vì vậy mà các chương trình nào sử dụng ReactJS thì không thể sử dụng trong React Native. 

Sự khác biệt giữa React Native và ReactJS

Thiết lập và đóng gói (Set-up and bunlding)

Do React Native là một framework, còn ReactJS chỉ là thư viện trong JavaScript và được sử dụng cho trên web. 

Khi sử dụng trong chương trình mới:

  • ReactJS: cho bạn chọn một đóng gói (bundler) xem như 1 webpack, nó luôn cố gắng tìm ra những module thực sự đáng có trong dự án của bạn.
  • React Native: cung cấp mọi thứ bạn cần để tạo ra một chương trình hoàn hảo. Giúp bạn thấy được sự dễ dàng trong lúc thiết lập, có khi chỉ một dòng lệnh ngắn gọn chạy trong terminal là có thể chạy code. 

Để các ứng dụng có sử dụng Native, bạn phải có sẵn Xcode (dành cho iOS, trên máy Mac), Android Studio (dành cho Android) sẵn trên máy tính.

Sự khác biệt giữa React Native và ReactJS

Gestures và Animations

React Native cung cấp cho người dùng Layout Animation, chỉ hỗ trợ tốt trong hệ điều hành iOS. Việc sử dụng công cụ này thật sự đơn giản và dễ dàng trong quá trình transitions. 

React Native còn cung cấp thêm PanResponder giúp hỗ trợ tương tác được với những cử chỉ của người dùng. PanResponder cần phải áp dụng cho một view của component để được phép xử lý các cảm ứng trên view.

Điều hướng (Navigation)

Để có thể điều hướng dễ dàng giữa hai view trong React Native, ta có thể dùng component Navigator được cung cấp sẵn. Mọi ứng dụng trên thiết bị di động không dễ chuyển hướng như trên web, lúc đầu khi mới sử dụng Navigator bạn sẽ thấy chúng khá phức tạp nhưng bù lại nó cung cấp cho bạn mọi thứ về quản lý sự chuyển tiếp giữa các cảnh. 

Navigator là sự lựa chọn tuyệt vời dành cho bạn, nếu đang có ý định xây dựng một ứng dụng trên thiết bị di động rất lớn và đòi hỏi nhiều cảnh khác nhau nhưng bạn không muốn mất ở thời điểm nào.

Sự khác biệt giữa React Native và ReactJS

Công cụ phát triển

Bạn có thể sử dụng công cụ dành cho Developer tool trong React Native một cách dễ dàng, khi bắt đầu một dự án mới mà không cần cài đặt thêm thứ gì. 

Nếu cần thực hiện những thay đổi nhỏ đối với style ứng dụng, bạn chỉ cần sử dụng Hot Reloading được cung cấp sẵn. Còn những thay đổi lớn, liên quan tới logic của ứng dụng thì cách nhanh nhất là sử dụng Tải lại tức thì (live reload).

Thêm một công cụ là Chrome Dev Tools hoạt động tốt giúp kiểm tra các yêu cầu mạng, hiển thị các bản ghi điều khiển giao diện và dừng mã trên khi trình gỡ lỗi chạy.

Sự khác biệt giữa React Native và ReactJS

Publishing

Bạn định hướng phát triển sự nghiệp theo hướng lập trình ứng dụng trên cả 2 hệ điều hành iOS và Android, thì nên tìm hiểu kĩ cách thức hoạt động của Xcode và Android. Để đảm bảo mọi thứ khi thiết lập đều triển khai không có gì sai sót lúc đưa ra sử dụng trên App Store hay Google Play. 

Khi được sử dụng trên iOS nó hoạt động như bao ứng dụng native thông thường, còn khi được thiết lập trên Android bạn có thể phải làm theo Khuyến nghị phản ứng để đăng nhập APK của bạn, sau đó mới có thể tải lên Google Play.

Sự khác biệt giữa React Native và ReactJS