- vừa được xem lúc

Bạn đã biết về Props và State trong React??

0 0 10

Người đăng: Nguyen Trung Giang

Theo Viblo Asia

Nếu là một người lập trình sử dụng Reat thì chắc bạn đã quá quen thuộc vơi việc sử dụng Props hoặc State trong các component rồi nhỉ.

Nhưng liệu bạn đã biết về sự khác nhau giữa chúng chưa?

Nếu chưa thì cùng mình tìm hiểu nhé.

Props

  • Props là 1 đối tượng chứa các giá trị của các attribute của một thẻ và là cách các component nhận được các giá trị truyền từ ngoài vào.

Ví dụ:

function XinChao(props) { return <h1>Xin chào {props.name}</h1>;
} const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <XinChao name="Sara" />;
root.render(element);
  • Ở đây chúng ta đã truyền property name vào trong props của component XinChao.
  • Mỗi property của component sẽ tương ứng với một attribute của thẻ và giá trị của attribute đó sẽ được truyền vào property của props.
  • Bạn có thể thay đổi Props bằng cách sử dụng setProps hoặc replaceProps nhưng không khuyến khích việc bạn sử dụng chúng vì React có 1 rule đó là pure function: không làm thay đổi giá trị đầu vào và luôn trả về 1 kiểu định dạng ( Props are Read-Only)

State

  • Cũng giống như props , state cũng lưu trữ thông tin về component, nhưng là lưu trữ dữ liệu động của một component.
  • State là dữ liệu động , nó cho phép một component theo dõi thông tin thay đổi giữa các kết xuất và khiến nó có thể tương tác.
  • State chỉ có thể được sử dụng ở trong một component sinh ra nó.
  • Nếu component cần quản lý state, thì nên tạo nó trong một class component chứ không phải là một function component.

ví dụ:

class Clock extends React.Component { constructor(props) { super(props); this.state = {date: new Date()}; } render() { return ( <div> <h1>Xin chào!</h1> <h2>Bây giờ là {this.state.date.toLocaleTimeString()}.</h2> </div> ); }
} const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Clock />);
  • Với ví dụ trên thì khi chúng ta vào trang lúc 22:20:58 sẽ nhận được kết quả là

  • Và mỗi lần chúng ta f5 thì giờ sẽ thay đổi.
  • Để cho thời gian có thể update thì bạn có thể tìm hiểu thêm về lifecycle methods.

Props và State

Giống

  • Cả 2 để là đối tượng cơ bản trong React và khi thay đổi giá trị sẽ thực hiện render.

Khác

Props State
Quản lý dữ liệu truyền dữ liệu đến component giống truyền param trong function được quản lý bên trong component
Thay đổi dữ liệu trong component Không (do dữ liệu được truyền vào) Có (do được quản lý bên trong component)
Thay đổi dữ liệu từ component cha Không

Kết Lại

  • Trên đây là những gì mình biết về props và state trong React mong rằng nó sẽ giúp đỡ được mọi người. 😅😅
  • Cảm ơn mọi người đã đọc bài viết của mình nếu thấy có ích hãy upvote cho mình nhé! 😅😅

Bình luận

Bài viết tương tự

- vừa được xem lúc

Những điều cần lưu ý và sử dụng Hook trong React (Phần 5)

V. Sử dụng useRef như thế nào cho đúng.

0 0 127

- vừa được xem lúc

7 Cách viết code React "clean" hơn

Mở đầu. Là nhà phát triển React, tất cả chúng ta đều muốn viết code sạch hơn, đơn giản hơn và dễ đọc hơn. 1. Sử dụng JSX shorthands.

0 0 188

- vừa được xem lúc

Create app covid-19 use Reactjs

Chào các bạn hôm nay mình sẽ chia sẻ với các bạn một app covid-19, để mọi người cùng tham khảo, tính năng của App này chỉ đơn giản là show số liệu về dịch Covid của các nước trên thế giới như: Số ngườ

0 0 39

- vừa được xem lúc

ReactJS Custom Hooks

ReactJS cung cấp rất nhiều cho bạn các hook mà bạn có thể sử dụng hằng ngày vào project của mình. Nhưng bên cạnh đó bạn có thể tự tạo ra các hook của riêng bạn để sử dụng, làm cho việc tối ưu hóa code

0 0 65

- vừa được xem lúc

3 cách để tránh re-render khi dùng React context

3 cách để tránh re-render khi dùng React context. Nếu đã từng sử dụng React context cho dự án của bạn, và gặp phải tình trạng các component con - Consumer re-render rất nhiều lần, thậm chí bị sai logi

0 0 25

- vừa được xem lúc

Tìm hiểu về React Hook: Sử dụng useDebugValue

Trong bài viết hôm này, tôi sẽ giới thiệu các bạn một React Hook tiếp theo, đó là useDebugValue. useDebugValue là gì .

0 0 45