Giải thích chi tiết về props và state trong React Native

Tìm hiểu sâu về props và state trong React Native - hai khái niệm quan trọng giúp quản lý giao diện và tương tác trong ứng dụng. Khám phá chi tiết cách sử dụng chúng!

imdevquen

imdevquen

May 31, 2026 · 6 min read

Định nghĩa props trong React Native

Trong React Native, props (viết tắt của properties) là một cách mà chúng ta truyền dữ liệu từ component cha sang component con. Mỗi component có thể nhận được props là các giá trị, hàm hoặc các đối tượng mà từ đó nó có thể sử dụng để hiển thị thông tin tương ứng.

Khi một component nhận props, nó không thể thay đổi chúng. Điều này tạo ra một cách tiếp cận hướng dữ liệu, cho phép bạn xây dựng các UI động mà không cần phải cập nhật trực tiếp vào component. Theo kinh nghiệm của mình, việc quản lý props đúng cách giúp ứng dụng có cấu trúc rõ ràng và dễ bảo trì hơn.

Props thường được dùng để:

  • Truyền dữ liệu từ component cha sang con.
  • Thực hiện callback function cho các event (như nhấn nút).
  • Thiết lập giá trị khởi tạo cho component con.

Chẳng hạn, khi mình xây dựng một ứng dụng todo list, mình sử dụng props để truyền danh sách công việc từ component cha xuống một component con để hiển thị. Điều này giúp mình dễ dàng thay đổi và cập nhật dữ liệu mà không làm ảnh hưởng đến toàn bộ ứng dụng.

Câu hỏi phổ biến mà bạn có thể thắc mắc là: "Làm thế nào để biết rằng một prop có đang được sử dụng đúng cách không?" Câu trả lời là thông qua việc kiểm tra và theo dõi các props được truyền vào trong component, bạn có thể sử dụng PropTypes để xác định kiểu dữ liệu và để dễ dàng phát hiện lỗi khi sử dụng.

Định nghĩa state trong React Native

Ngược lại với props, state là thông tin mà một component tự quản lý. State có thể thay đổi theo thời gian; khi state của một component thay đổi, component đó sẽ tự động render lại với giá trị mới. Điều này giúp các ứng dụng React Native luôn cập nhật và phản hồi theo cách mà người dùng mong đợi.

State thường được sử dụng để:

  • Lưu trữ thông tin tạm thời, như giá trị input từ form.
  • Quản lý trạng thái hiển thị của UI, như việc hiển thị modal hay loading spinner.
  • Thực hiện các cuộc gọi API và lưu trữ dữ liệu nhận được.

Sử dụng hook useState trong React Native giúp bạn dễ dàng thao tác với state trong functional component. Khi mình xây dựng một ứng dụng quản lý người dùng, việc sử dụng state để lưu thông tin người dùng là rất cần thiết, chẳng hạn như tên, email và các trạng thái tương ứng của họ.

Vậy nếu bạn đang tự hỏi: "Có thể sử dụng state trong các component class không?" Câu trả lời là có, trước khi React hooks ra đời, state được quản lý trong class component thông qua this.statethis.setState().

Sự khác biệt giữa props và state

Sự khác biệt chính giữa props và state nằm ở cách mà chúng được quản lý và sử dụng trong React Native:

  • Props: được truyền từ component cha xuống component con và không thể thay đổi trong component con.
  • State: là thông tin mà component tự quản lý, cho phép thay đổi và render lại khi có sự thay đổi.

Cả hai đều là những khái niệm quan trọng trong React Native, nhưng việc hiểu rõ sự khác biệt sẽ giúp bạn quản lý flow dữ liệu tốt hơn trong ứng dụng. Câu hỏi thường gặp là: "Tại sao lại cần props trong khi state đã có thể làm việc đó?" Đúng vậy, props và state đều phục vụ những mục đích khác nhau và bổ sung cho nhau trong việc phát triển ứng dụng.

Cách sử dụng props và state hiệu quả

Khi xây dựng ứng dụng với React Native, việc sử dụng props và state hiệu quả là rất quan trọng để tối ưu hóa hiệu suất và khả năng bảo trì mã nguồn. Dưới đây là một số cách để sử dụng hai khái niệm này một cách hiệu quả:

  • Giảm số lượng props cần thiết: Hãy cân nhắc việc chỉ truyền các props cần thiết để component con hoạt động. Điều này không chỉ giảm kích thước của component mà còn làm cho nó trở nên linh hoạt hơn.
  • Quản lý state một cách tối ưu: Tránh việc tạo state trùng lặp nếu bạn đã có dữ liệu trong props. Sử dụng props để điều khiển state và cập nhật chúng khi cần.
  • Tránh re-render không cần thiết: Khi state thay đổi, hãy cân nhắc việc sử dụng React.memo để ngăn chặn việc render lại component nếu props không thay đổi. Theo kinh nghiệm của mình, việc này giảm thiểu thời gian render và tăng tốc độ phản hồi ứng dụng.
  • Sử dụng Context API hoặc Redux: Đối với các ứng dụng lớn với nhiều component cần chia sẻ state, hãy xem xét việc sử dụng Context API hoặc các thư viện quản lý state như Redux để đơn giản hóa việc truyền props.

Hãy nhớ rằng, quản lý props và state không chỉ là một phần kỹ thuật mà còn là nghệ thuật. Bạn nên tìm cách để cấu trúc mã nguồn của mình sao cho rõ ràng, dễ hiểu, và dễ bảo trì trong tương lai.

Ví dụ minh họa cho props và state

Dưới đây là một ví dụ minh họa rõ ràng về cách sử dụng props và state trong một ứng dụng React Native:

import React, { useState } from 'react';
import { View, Text, Button } from 'react-native';

const Counter = (props) => {
    const [count, setCount] = useState(0);

    return (
        
            Count: {count}
            

Trong ví dụ này, Counter là một component sử dụng state để quản lý biến count. Nó cũng nhận một prop là message từ component cha App. Như bạn có thể thấy, việc phân tích cấu trúc này giúp cho quản lý dữ liệu giữa các component trở nên mượt mà và rõ ràng hơn.

Sau khi thử nghiệm ví dụ này, bạn có thể hỏi rằng: "Làm thế nào để có thể truyền nhiều props hơn cho một component?" Câu trả lời đơn giản là bạn chỉ cần thêm các props khác vào component như bất kỳ thuộc tính nào khác, và component sẽ tự động nhận giá trị này.

Chia sẻ bài viết

Back to Blog