So sánh ReactJS và React Native – Điểm giống, khác và ví dụ thực tế

13:36 26/04/2025

ReactJS và React Native đều là những công nghệ mạnh mẽ do Meta (Facebook) phát triển, dựa trên thư viện React. Dù có cùng ‘gốc’, chúng lại phục vụ các mục tiêu khác nhau. ReactJS dùng để phát triển ứng dụng web, React Native dùng để phát triển ứng dụng di động (Android, iOS). Cả hai đều sử dụng một công nghệ cốt lõi: JSX – một cú pháp đặc biệt giúp lập trình viên xây dựng UI một cách trực quan. Tuy nhiên, cách chúng render và vận hành là hoàn toàn khác nhau.

Điểm giống nhau giữa ReactJS và React Native

ReactJS và React Native có nhiều điểm chung. Dưới đây là bảng so sánh các điểm giống nhau giữa hai công nghệ này:

Điểm giống Mô tả
JSX (JavaScript XML) Cả hai đều dùng JSX để mô tả UI một cách trực quan.
Component-based Cấu trúc dựa trên component, giúp tái sử dụng mã và dễ tổ chức.
Hooks Dùng các hook như useState, useEffect, useContext, v.v.
State & Props Quản lý dữ liệu nội bộ và truyền dữ liệu giữa các component.
Logic xử lý giống nhau Các hàm xử lý như gọi API, xử lý dữ liệu có thể chia sẻ chung.

Điểm khác nhau giữa ReactJS và React Native

Dưới đây là bảng so sánh các điểm khác nhau giữa ReactJS và React Native:

Tiêu chí ReactJS React Native
Nền tảng Trình duyệt web Android & iOS
Thẻ JSX Dùng HTML: div, h1, p, img… Dùng native component: View, Text, Image, ScrollView…
Cách styling CSS truyền thống, CSS Modules, styled-components StyleSheet.create, styled-components/native
Render giao diện Render ra HTML DOM Render ra Native UI components (iOS/Android)
Công cụ phát triển Chrome DevTools, React Developer Tools Android Studio, Xcode, React Native Debugger

JSX – Nền tảng chung

JSX cho phép viết mã JavaScript kết hợp với HTML-like syntax. Đây là điểm chung nổi bật của cả hai công nghệ.

Dưới đây là ví dụ về JSX trong ReactJS và React Native:

JSX trong ReactJS

function Welcome() {

  return (

    <div>

      <h1>Chào mừng bạn đến với ReactJS</h1>

    </div>

  );

}

JSX trong React Native

import { View, Text } from ‘react-native’;

function Welcome() {

  return (

    <View>

      <Text>Chào mừng bạn đến với React Native</Text>

    </View>

  );

}

Ví dụ cụ thể – Màn hình hiển thị danh sách sản phẩm

ReactJS – Web

import React, { useEffect, useState } from ‘react’;

import axios from ‘axios’;

function ProductList() {

  const [products, setProducts] = useState([]);

  useEffect(() => {

    axios.get(‘https://api.example.com/products’)

      .then(res => setProducts(res.data))

      .catch(console.error);

  }, []);

  return (

    <div>

      <h2>Danh sách sn phm</h2>

      <ul>

        {products.map(p => (

          <li key={p.id}>{p.name}{p.price}</li>

        ))}

      </ul>

    </div>

  );

}

React Native – Mobile

import React, { useEffect, useState } from ‘react’;

import { View, Text, FlatList, StyleSheet } from ‘react-native’;

import axios from ‘axios’;

const ProductList = () => {

  const [products, setProducts] = useState([]);

  useEffect(() => {

    axios.get(‘https://api.example.com/products’)

      .then(res => setProducts(res.data))

      .catch(console.error);

  }, []);

  const renderItem = ({ item }) => (

    <View style={styles.item}>

      <Text style={styles.name}>{item.name}</Text>

      <Text>{item.price}</Text>

    </View>

  );

  return (

    <View style={styles.container}>

      <Text style={styles.header}>Danh sách sn phm</Text>

      <FlatList

        data={products}

        renderItem={renderItem}

        keyExtractor={item => item.id.toString()}

      />

    </View>

  );

};

const styles = StyleSheet.create({

  container: { padding: 16 },

  header: { fontSize: 20, fontWeight: ‘bold’, marginBottom: 10 },

  item: { marginBottom: 10 },

  name: { fontWeight: ‘600’ },

});

export default ProductList;

Kết luận

ReactJSReact Native tuy phục vụ các nền tảng khác nhau nhưng lại chia sẻ cùng một triết lý phát triển: dựa trên component, dùng JSX, và có thể chia sẻ logic chung. Nếu bạn đã biết ReactJS, việc học React Native sẽ nhanh và dễ dàng hơn nhiều. JSX là nền tảng trung gian mạnh mẽ giúp bạn viết UI logic một cách trực quan, mạch lạc.

Giảng viên Nguyễn Lê Phương
Bộ môn Công nghệ thông tin
FPT Polytechnic TP HCM

Đăng ký nhận đề thi thử 2025

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2025

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.