Props
Props là một đối tượng được truyền làm đối số đầu tiên của Component.

I. Xây dựng component GreetUser
Giả sử chúng ta có một component tên là <GreetUser> hiển thị: Welcome Sam hoặc Welcome Alex.
Chúng ta cần làm cho component hiển thị Welcome và sau đó là tên người dùng.
Hãy bắt đầu bằng phiên bản hiển thị thủ công của component này
//GreetUser.js
export default function GreetUser() {
return <div>Welcome USER</div>;
}
Component <GreetUser /> sẽ hiển thị Welcome USER.
II. Props
Thay vì hiển thị <GreetUser />, chúng ta có thể hiển thị <GreetUser user="Sam" />.
user="Sam" là thuộc tính user với giá trị Sam được thêm vào component GreetUser.
Bây giờ chúng ta có thể đọc user="Sam" này như một đối tượng: {user: "Sam"}.
Chúng ta gọi đối tượng đó là props (viết tắt của properties - trường thuộc tính).
//GreetUser.js
export default function GreetUser(props) {
console.log(props); // {user: "Sam"}
return <div>Welcome USER</div>;
}
Trường thuộc tính được truyền bây giờ nằm bên trong đối tượng mà hàm GreetUser nhận làm đối số đầu tiên.
Vì vậy, chúng ta có thể sử dụng biểu thức để hiển thị tên người dùng (có thể đọc là props.user):
//GreetUser.js
export default function GreetUser(props) {
return <div>Welcome {props.user}</div>;
}
-
<GreetUser user="Sam"/>sẽ hiển thị<div>Welcome Sam</div> -
<GreetUser user="Alex"/>sẽ hiển thị<div>Welcome Alex</div>
Điều này làm cho component linh hoạt hơn và có thể tái sử dụng!
III. React.createElement
Code JSX sau:
<GreetUser user="Sam" id="2" />
được chuyển đổi thành:
React.createElement(GreetUser, {user: "Sam", id: "2"});
Để ý các thuộc tính JSX trên Component được chuyển đổi thành props là đối số thứ hai của React.createElement.
Truyền hàm qua props trong React
Truyền hàm qua props là cách bạn gửi một hàm (function) từ component cha xuống component con thông qua props, để con gọi lại hàm đó khi cần, thường dùng trong các tương tác như click, thay đổi, submit, v.v.
Component con không nên tự thay đổi state – thay vào đó, nó gọi hàm từ cha, để cha quyết định thay đổi gì.
// ✅ Component Con
function ClickButton({ onClick }) {
return <button onClick={onClick}>Click me</button>;
}
// ✅ Component Cha
function App() {
const handleClick = () => {
alert("Con đã gọi Cha!");
};
return <ClickButton onClick={handleClick} />;
}
| Thành phần | Vai trò |
|---|---|
handleClick | Là một hàm định nghĩa trong cha (App) |
<ClickButton onClick={handleClick} /> | Truyền hàm xuống con qua prop onClick |
onClick={onClick} trong con | Khi click, hàm cha được gọi |
- Props là viết tắt của properties - thuộc tính.
- Props là một đối tượng được truyền làm đối số đầu tiên của Component.
- Các thuộc tính trên component được chuyển đổi thành một đối tượng gọi là Props.
- Props làm cho component linh hoạt hơn và dễ dàng tái sử dụng.
FAQ - Câu hỏi thường gặp khi phỏng vấn
Câu 1. Props Children là gì trong React?
props.children là một props đặc biệt đại diện cho nội dung nằm giữa các thẻ mở và đóng của một component.
Câu 2. props.children có thể chứa những kiểu dữ liệu nào?
props.children có thể là:
Chuỗi văn bản
Một phần tử React
Một mảng các phần tử
Một component
Bất kỳ kiểu dữ liệu hợp lệ trong JSX
Câu 3. Tại sao props.children lại hữu ích trong việc xây dựng giao diện?
Vì nó cho phép component bao bọc và hiển thị nội dung con một cách linh hoạt, giúp tái sử dụng component dễ dàng hơn.