Skip to content

React Component

Component Type

React Client Components และ React Server Components เป็นแนวทางในการจัดการกับการเรนเดอร์ใน React ซึ่งช่วยให้สามารถจัดการข้อมูลและการเรนเดอร์ได้อย่างมีประสิทธิภาพมากขึ้น

React Client Components

คอมโพเนนต์ที่ทำงานบนฝั่งลูกค้า (Client-Side) ซึ่งหมายความว่าคอมโพเนนต์เหล่านี้จะถูกเรนเดอร์ในเบราว์เซอร์ของผู้ใช้ และสามารถใช้ state, event handlers และอื่น ๆ

  • ใช้ Hooks: สามารถใช้ hooks เช่น useState, useEffect ฯลฯ
  • การจัดการสถานะ: การจัดการสถานะ (state) และการจัดการอีเวนต์
  • การเรนเดอร์ฝั่งลูกค้า: ทุกการเปลี่ยนแปลงจะถูกเรนเดอร์ในเบราว์เซอร์
jsx
import React, { useState } from 'react';

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

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

export default Counter;

React Server Components

คอมโพเนนต์ที่ทำงานบนฝั่งเซิร์ฟเวอร์ (Server-Side) ซึ่งหมายความว่าคอมโพเนนต์เหล่านี้จะถูกเรนเดอร์บนเซิร์ฟเวอร์และส่งผลลัพธ์ที่เรนเดอร์แล้วไปยังเบราว์เซอร์ ทำให้ลดการทำงานที่เบราว์เซอร์ต้องทำ

  • ไม่ใช้ Hooks: ไม่สามารถใช้ hooks ที่เกี่ยวข้องกับการจัดการสถานะหรืออีเวนต์ได้
  • การเรนเดอร์ฝั่งเซิร์ฟเวอร์: ช่วยลดเวลาการโหลดหน้าเว็บและสามารถรวมข้อมูลจากหลายแหล่งได้
  • การบูรณาการกับฐานข้อมูล: การดึงข้อมูลจากฐานข้อมูลจะเกิดขึ้นที่ฝั่งเซิร์ฟเวอร์
jsx
// This is a React Server Component (in Next.js, for example)
import React from 'react';

// Note: You do not use hooks like useState here
async function fetchData() {
  const res = await fetch('https://api.example.com/data');
  return res.json();
}

export default async function DataFetcher() {
  const data = await fetchData();

  return <div>Data: {data}</div>;
}

Released under the MIT License