useReducer hook ใน Next.js เป็น hook ที่ช่วยให้คุณสามารถจัดการ state ของส่วนประกอบของคุณได้อย่างซับซ้อนยิ่งขึ้น
useReducer hook คืนกลับสามตัว:
- ค่าเริ่มต้นของ state
- reducer function
- ฟังก์ชันที่สามารถใช้เพื่อส่งการกระทำไปยัง reducer
reducer function เป็นฟังก์ชันที่รับ state ก่อนหน้าและการกระทำเป็นอาร์กิวเมนต์และคืนค่า state ใหม่
ตัวอย่างเช่น ไฟล์ต่อไปนี้จะสร้างส่วนประกอบที่มี state เดียว:
1 | import React, { useReducer } from 'react'; |
ไฟล์นี้ใช้ useReducer hook เพื่อสร้าง reducer function ที่รับ state ก่อนหน้าและการกระทำเป็นอาร์กิวเมนต์และคืนค่า state ใหม่
ฟังก์ชัน dispatch() ใช้เพื่อส่งการกระทำไปยัง reducer
เมื่อผู้ใช้คลิกปุ่ม “Increment” ฟังก์ชัน dispatch('increment') จะเรียกใช้และเพิ่มค่า state หนึ่งหน่วย
เมื่อผู้ใช้คลิกปุ่ม “Decrement” ฟังก์ชัน dispatch('decrement') จะเรียกใช้และลดค่า state หนึ่งหน่วย
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ useReducer hook จากเอกสารประกอบของ Next.js
useReducer hook เป็นเครื่องมือที่มีประโยชน์ที่จะช่วยให้คุณจัดการ state ของส่วนประกอบของคุณได้อย่างยืดหยุ่น
สิ่งนี้ช่วยให้คุณสร้างแอปพลิเคชันที่ตอบสนองและมีประสิทธิภาพ
ความแตกต่างระหว่าง useState และ useReducer
useState hook เป็น hook ที่ง่ายกว่าและเหมาะสำหรับจัดการ state แบบง่าย ๆ
useReducer hook เป็น hook ที่มีประสิทธิภาพกว่าและเหมาะสำหรับจัดการ state แบบซับซ้อน
useReducer hook ช่วยให้คุณสามารถจัดการ state ของคุณด้วย reducer function ซึ่งช่วยให้คุณควบคุมวิธีที่ state ของคุณเปลี่ยนแปลงได้มากขึ้น
useReducer hook ยังสามารถช่วยปรับปรุงประสิทธิภาพของแอปพลิเคชันของคุณโดยหลีกเลี่ยงการ re-render ที่ไม่จำเป็น
โดยปกติแล้ว คุณควรใช้ useState hook สำหรับ state ง่าย ๆ และ useReducer hook สำหรับ state ซับซ้อน