React ตัวอย่างการใช้งาน React Context and Reducer

React ตัวอย่างการใช้งาน React Context and Reducer

React Context: ความหมายและวิธีใช้งาน

ปัญหา: ในบางครั้ง เราต้องการให้คอมโพเนนท์ที่อยู่บนสุดและล่างสุดของ stack เข้าถึง state เดียวกันได้ โดยหากไม่มี Context เราจำเป็นต้องส่ง state นั้นผ่าน “props” ผ่านแต่ละคอมโพเนนท์ที่อยู่ในชั้นที่ซ้อนกันไปเรื่อย ๆ ซึ่งเรียกว่า “prop drilling”

วิธีแก้ไข: วิธีแก้ไขคือการสร้าง Context ขึ้นมา

React Context คืออะไร: React Context เป็นวิธีหนึ่งในการจัดการ state แบบ global ในแอพพลิเคชัน React ซึ่งช่วยให้เราสามารถส่งข้อมูลข้าม component tree ได้โดยไม่ต้องใช้ prop drilling

ตัวอย่าง

การใช้งาน Context Provider ใน React

Context Provider มีบทบาทสำคัญในการให้ค่า state และฟังก์ชั่นต่างๆ แก่คอมโพเนนท์ลูกที่อยู่ใน tree โดยที่ไม่จำเป็นต้องผ่าน props ไปเรื่อยๆ

การใช้งาน Context Provider และ useContext Hook ใน React

Context Provider ใช้ในการส่งค่า state และฟังก์ชั่นต่างๆ ไปยังคอมโพเนนท์ลูกทั้งหมดใน tree และคอมโพเนนท์ลูกสามารถเข้าถึงค่าเหล่านี้ได้โดยใช้ useContext Hook

สรุป

การใช้ Context Provider ร่วมกับ useContext Hook ทำให้การจัดการ state ใน React ทำได้ง่ายขึ้นและลดความจำเป็นในการส่ง props ผ่านหลายๆ ชั้นของคอมโพเนนท์ ในการใช้งาน เราต้องสร้าง Context และ Provider จากนั้นห่อหุ้มคอมโพเนนท์ลูกด้วย Provider และใช้ useContext Hook ในคอมโพเนนท์ลูกเพื่อเข้าถึงค่า state และฟังก์ชั่นต่างๆ ที่ต้องการ

useReducer

การใช้งาน useReducer Hook ใน React

useReducer Hook มีความคล้ายคลึงกับ useState Hook แต่ช่วยให้เราสามารถจัดการกับ logic ของ state ที่ซับซ้อนได้มากขึ้น เหมาะสำหรับการจัดการหลายๆ ชิ้นส่วนของ state

คุณสมบัติของ useReducer:

  1. รับสองอาร์กิวเมนต์:
    • reducer function: เป็นฟังก์ชันที่กำหนดว่า state ควรเปลี่ยนแปลงอย่างไรเมื่อมี action เกิดขึ้น
    • initial state: ค่าเริ่มต้นของ state
  2. คืนค่า state ปัจจุบันและ dispatch method:
    • state: ค่าปัจจุบันของ state
    • dispatch: ฟังก์ชันที่ใช้ในการส่ง action เพื่อกระตุ้นให้ reducer function ทำงาน

ตัวอย่าง

 

ติดต่อ สอบถามข้อมูลเพิ่มเติม