Khác nhau giữa ReactJS và React Native
Hiện nay có những băn khoăn về hai khái niệm: ReactJs và React Native. Hai cái này có tên gần giống nhau, liệu có phải là cùng một lò sinh ra không? Cơ chế hoạt động có giống nhau không?

1/ Về mục tiêu ReactJs và React Native
React (Reactjs hay React.js) là một thư viện JavaScript phổ biến nhất để xây dựng giao diện người dùng hoặc các thành phần UI. Được tạo ra bởi sự cộng tác giữa Facebook và Instagram. Nó được duy trì bởi Facebook và một cộng đồng các nhà phát triển và công ty cá nhân. React có thể được sử dụng như một cơ sở để phát triển các ứng dụng trang đơn hoặc di động. Một trong những đặc trưng duy nhất của React là việc render dữ liệu không những có thể thực hiện ở tầng Server mà còn ở tầng Client.
Còn React Native thì sao?
React Native là một framework dùng để phát triển các ứng dụng cho mobile(Cụ thể là Android và IOS). được phát hành sau ReactJS 4 năm, sau khi ReactJS đã tràn ngập khắp giới lập trình web. ReactJS và React Native chỉ có một điểm tương đồng, còn lại là khác nhau hoàn toàn. Đó chính là Javascript!
Để trở thành React Native developer có trình độ, bạn phải có một số lượng kiến thức chuyên sâu về JavaScript ES6. Bởi vì ReactJS là cốt lõi của React Native, hiểu biết về cái cũ là chìa khóa cho cái mới.
2. Khi bắt đầu một dự án mới
Với ReactJS, developer cần phải lựa chọn các module tốt nhất và cần thiết nhất trước khi bắt đầu một dự án.
Trong khi React Native cung cấp mọi thứ cần thiết. Bạn có thể viết ngay một ứng dụng bằng React Native chỉ với một dòng command. Điều này làm cho người mới chuyển sang học React Native đỡ khó khăn rất nhiều.
3. HTML – điểm khác biệt lớn
React Native không sử dụng HTML để hiển thị giao diện ứng dụng(lý do đơn giản là nếu sử dụng HTML thì React Native có khác gì tạo web app rồi nhúng vào webview không? tốc độ sẽ lại chậm như rùa ^_^)
Thay vào đó, React Native cung cấp các component hoạt động cũng tương tự, và hầu hết chúng có thể được biến đổi thành các phần tử tương đương trong HTML
Ví dụ:
<View> tương đương với <div> <Text> biến thành <span> và <p>.
Do đó, các thư viện được sử dụng với ReactJS không thể sử dụng trong React Native. React Native không sử dụng thẻ CSS hoặc sử dụng chúng theo cách khác, tương tự như Flexbox.
4. Gestures và animations
React Native cung cấp một thư viện tương tự như Velocity.js có tên là Animated. Nó còn cung cấp LayoutAnimation, nhưng chỉ có iOS mới hỗ trợ tốt.
Để tương tác với cử chỉ của người dùng, React Native đã cung cấp PanResponder. Khi áp dụng nó vào một View, bạn có thể kích hoạt xử lý các sự kiện touch của người dùng
5. Những điểm khác biệt còn lại
Giữa ReactJS và React Native có nhiều điểm khác biệt hơn là điểm tương đồng. Tuy nhiên, vẫn còn đó một số đặc điểm có liên quan đến cả hai.
Mọi người thường nói đùa rằng sự tương đồng lớn nhất đó là cả hai đều thiếu tài liệu. Nhưng điểm yếu này đang dần được khắc phục bởi nhà phát hành.