Dark mode
Component Patterns
Basic Component
คอมโพเนนต์พื้นฐานใน React
tsx
function Greeting() {
return <h1>Hello, World!</h1>;
}
Component with Props
คอมโพเนนต์ที่รับค่าผ่าน props
tsx
interface GreetingProps {
name: string;
}
function Greeting({ name }: GreetingProps) {
return <h1>Hello, {name}!</h1>;
}
Component Composition
เทคนิคการประกอบคอมโพเนนต์เข้าด้วยกัน
tsx
function Card({ children }: { children: React.ReactNode }) {
return <div className="card">{children}</div>;
}
function App() {
return (
<Card>
<Greeting name="John" />
</Card>
);
}
Scoped Slots
Scoped Slots เป็นรูปแบบการส่งข้อมูลจาก parent component ไปยัง child component โดยให้ child component ควบคุมการเรนเดอร์
tsx
function UserList(
{ users, children }: { users: User[]; children: (user: User) => ReactNode },
) {
return (
<ul>
{users.map((user) => <li key={user.id}>{children(user)}</li>)}
</ul>
);
}
// การใช้งาน
<UserList users={users}>
{(user) => (
<div>
<h3>{user.name}</h3>
<p>{user.email}</p>
</div>
)}
</UserList>;
ตัวอย่างด้านบนแสดงให้เห็นว่า:
UserList
component รับ propchildren
เป็นฟังก์ชัน- ฟังก์ชันนี้จะรับพารามิเตอร์เป็น
user
และ return JSX - Parent component สามารถควบคุมการแสดงผลของแต่ละ user ได้