作為子元件的屬性進行描述
export default function Profile() {
return (
<Avatar
person={{ name: 'Lin Lanying', imageId: '1bX5QH6' }} // 物件
size={100} // 數值
/>
);
}
一般使用 解構賦值 (Destructuring) 在函數元件的參數中接收
// 透過解構賦值接收
function Avatar({ person, size }) {
// person, size 作為變數使用
}
// 不使用解構賦值的情況(同義)
function Avatar(props) {
let person = props.person;
let size = props.size;
}
在解構賦值時,可以使用 =
指定預設值
function Avatar({ person, size = 100 }) {
// 當 size 未被傳遞或為 undefined 時,使用 100
}
父元件可以不逐一描述地將收到的 props 一次性傳遞給子元件
function Profile(props) {
return (
<div className="card">
<Avatar {...props} /> // 將所有 props 傳遞給 Avatar
</div>
);
}
children
Propchildren
prop 傳遞給父元件// Profile側
<Card>
<Avatar /> // ← 這整個 <Avatar /> 都是 children
</Card>
// Card側
function Card({ children }) {
return (
<div className="card">
{children} // 放置接收到的內容
</div>
);
}
原文出處:https://qiita.com/maedaHARUYA/items/8a90e3deeccc0fa886d2