use client ใน Next.js

ใช่ คุณสามารถใช้ use client hook ใน Next.js เพื่อระบุว่าส่วนประกอบควรถูกสร้างขึ้นและทำงานบนฝั่งไคลเอนต์หรือฝั่งเซิร์ฟเวอร์

use client hook จะใช้เฉพาะเมื่อส่วนประกอบถูกสร้างขึ้นบนฝั่งไคลเอนต์

สิ่งนี้มีประโยชน์สำหรับส่วนประกอบที่ทำงานกับข้อมูลที่ไม่น่าเชื่อถือหรือเปลี่ยนแปลงบ่อย เช่น ข้อมูลที่ส่งมาจากผู้ใช้ หรือข้อมูลที่ได้รับจาก API

ตัวอย่างเช่น ไฟล์ต่อไปนี้จะแสดงรายการโพสต์จากบล็อกของคุณ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import React, { useEffect, useClient } from 'react';

export default function Posts() {
const [posts, setPosts] = useState([]);

useEffect(() => {
// Fetch the posts from the API
axios.get('/api/posts').then((response) => {
setPosts(response.data);
});
}, []);

return (
<ul>
{posts.map((post) => (
<li key={post.id}>
{post.title}
</li>
))}
</ul>
);
}

ไฟล์นี้ใช้ useEffect hook เพื่อดึงโพสต์จาก API

ข้อมูลนี้จะถูกเก็บไว้ใน state ของส่วนประกอบและจะพร้อมใช้งานสำหรับส่วนประกอบ

คุณสามารถใช้ use client hook เพื่อระบุว่าส่วนประกอบนี้ควรทำงานบนฝั่งไคลเอนต์:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import React, { useEffect, useClient } from 'react';

export default function Posts() {
const [posts, setPosts] = useState([]);

// Use the `use client` hook to indicate that this component should run on the client
useClient(() => {
// Fetch the posts from the API
axios.get('/api/posts').then((response) => {
setPosts(response.data);
});
});

return (
<ul>
{posts.map((post) => (
<li key={post.id}>
{post.title}
</li>
))}
</ul>
);
}

ไฟล์นี้ใช้ use client hook เพื่อระบุว่าส่วนประกอบนี้ควรทำงานบนฝั่งไคลเอนต์

เมื่อผู้ใช้เยี่ยมชมหน้านี้ ข้อมูลโพสต์จะถูกดึงจาก API และเก็บไว้ใน state ของส่วนประกอบ

ข้อมูลนี้จะถูกใช้เพื่อแสดงรายการโพสต์ในหน้า

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ use client hook จากเอกสารประกอบของ Next.js

use client hook เป็นเครื่องมือที่มีประโยชน์ที่จะช่วยให้คุณควบคุมว่าส่วนประกอบใดควรทำงานบนฝั่งไคลเอนต์หรือฝั่งเซิร์ฟเวอร์

สิ่งนี้ช่วยให้คุณปรับปรุงประสิทธิภาพของแอปพลิเคชันของคุณและมอบประสบการณ์ผู้ใช้ที่ดีขึ้นแก่ผู้ใช้ของคุณ