จะใช้ตัวลดกับ React Context API ได้อย่างไร

Dec 15, 2025

เฮ้! หากคุณชื่นชอบการพัฒนา React คุณคงเคยได้ยินเกี่ยวกับ React Context API และตัวลดขนาดมาก่อน การรวมเข้าด้วยกันอาจเป็นเกม - ตัวเปลี่ยนการจัดการสถานะในแอป React ของคุณ และเดาอะไร? ฉันเป็นซัพพลายเออร์ตัวลดขนาด ดังนั้นฉันจึงมีข้อมูลเชิงลึกมาแบ่งปันว่าคุณสามารถใช้ตัวลดขนาดกับ React Context API ได้อย่างไร

ก่อนอื่น เรามาดูกันอย่างรวดเร็วว่า React Context API และตัวลดคืออะไร React Context API เป็นวิธีการแบ่งปันข้อมูลระหว่างส่วนประกอบต่างๆ โดยไม่ต้องส่งอุปกรณ์ประกอบฉากลงด้วยตนเองผ่านแผนผังส่วนประกอบทุกระดับ ซึ่งจะมีประโยชน์อย่างยิ่งเมื่อคุณมีข้อมูลที่องค์ประกอบหลายรายการจำเป็นต้องเข้าถึง เช่น สถานะการตรวจสอบสิทธิ์ผู้ใช้หรือการตั้งค่าธีม

ในทางกลับกัน ตัวลดคือฟังก์ชันล้วนๆ ที่รับสถานะปัจจุบันและการดำเนินการเป็นอินพุตและส่งกลับสถานะใหม่ เป็นแนวคิดหลักใน Redux แต่คุณสามารถใช้ได้อย่างอิสระใน React ตัวลดขนาดเหมาะอย่างยิ่งสำหรับการจัดการการเปลี่ยนแปลงสถานะที่ซับซ้อนในลักษณะที่คาดเดาได้

เหตุใดคุณจึงต้องการใช้ตัวลดกับ React Context API Context API นั้นยอดเยี่ยมสำหรับการแชร์ข้อมูล แต่ไม่มีวิธีในตัวในการจัดการการอัปเดตสถานะที่ซับซ้อน นั่นคือที่มาของตัวลด การใช้ตัวลดกับ Context API จะทำให้คุณมีศูนย์กลางในการจัดการการเปลี่ยนแปลงสถานะและแชร์สถานะนั้นทั่วทั้งแอปของคุณได้

เริ่มจากการตั้งค่าโครงสร้างพื้นฐานกันก่อน ขั้นแรก คุณจะต้องสร้างบริบท ใน React คุณสามารถทำได้โดยใช้ไฟล์สร้างบริบทการทำงาน. นี่คือตัวอย่าง:

นำเข้า React, { createContext, useReducer } จาก 'react'; // สร้างบริบท const MyContext = createContext(); // กำหนดฟังก์ชันลด const ลด = (สถานะ, การกระทำ) => { สวิตช์ (action.type) { กรณี 'INCREMENT': กลับ { นับ: state.count + 1 - กรณี 'ลดลง': ส่งคืน { นับ: state.count - 1 - ค่าเริ่มต้น: สถานะการส่งคืน; - // สร้างองค์ประกอบของผู้ให้บริการ const MyProvider = ({ children }) => { const [state, Dispatch] = useReducer(reducer, { count: 0 }); กลับ ( <ค่า MyContext.Provider={{ สถานะ, การจัดส่ง }}> {เด็ก} </MyContext.Provider> ); - ส่งออก { MyContext, MyProvider -

ในตัวอย่างนี้ ก่อนอื่นเราสร้างบริบทที่เรียกว่าบริบทของฉัน- จากนั้นเรากำหนดฟังก์ชันตัวลดที่สามารถจัดการการกระทำได้สองประเภท:เพิ่มขึ้นและลดลง- ที่ผู้ให้บริการของฉันส่วนประกอบใช้ใช้ลดขอเพื่อจัดการสถานะและฟังก์ชันการจัดส่ง จากนั้นรัฐและการจัดส่งจะถูกส่งผ่านเป็นค่าไปยังMyContext.ผู้ให้บริการ-

ตอนนี้เรามาดูวิธีการใช้บริบทนี้ในส่วนประกอบกัน สมมติว่าคุณมีส่วนประกอบง่ายๆ ที่ต้องการใช้สถานะและการดำเนินการจัดส่ง ต่อไปนี้คือวิธีที่คุณสามารถทำได้:

นำเข้าปฏิกิริยา { useContext } จาก 'ปฏิกิริยา'; นำเข้า { MyContext } จาก './yourContextFile'; const MyComponent = () => { const { state, จัดส่ง } = useContext (MyContext); return ( <div> <p>นับ: {state.count}</p> <button onClick={() => จัดส่ง ({ ประเภท: 'INCREMENT' })}>การเพิ่มขึ้น</button> <button onClick={() => จัดส่ง({ ประเภท: 'DECREMENT' })}>การลดลง</button> </div> ); - ส่งออก MyComponent เริ่มต้น;

ในส่วนประกอบของฉันเราใช้ใช้บริบทขอเพื่อเข้าถึงสถานะและฟังก์ชันการจัดส่งจากบริบท จากนั้นเราสามารถแสดงสถานะและส่งการดำเนินการเพื่ออัปเดตได้

สิ่งที่ยอดเยี่ยมอย่างหนึ่งเกี่ยวกับการใช้ตัวลดกับ React Context API คือมันทำให้โค้ดของคุณสามารถบำรุงรักษาได้มากขึ้น เนื่องจากการเปลี่ยนแปลงสถานะทั้งหมดได้รับการจัดการในที่เดียว (ตัวลด) จึงง่ายกว่าที่จะเข้าใจว่าสถานะได้รับการอัปเดตอย่างไร นอกจากนี้ เนื่องจากสถานะมีการแบ่งปันผ่านบริบท คุณจึงไม่ต้องกังวลกับการเจาะเสา

ตอนนี้ เรามาพูดถึงกรณีการใช้งานจริงบางกรณีกัน หากคุณกำลังสร้างแอปอีคอมเมิร์ซ คุณอาจมีตะกร้าสินค้า สถานะตะกร้าสินค้าสามารถจัดการได้โดยใช้ตัวลดและแชร์ระหว่างส่วนประกอบต่างๆ เช่น รายการผลิตภัณฑ์ สรุปตะกร้าสินค้า และหน้าชำระเงิน

มาดูตัวอย่างตัวลดที่ซับซ้อนมากขึ้นสำหรับตะกร้าสินค้า:

const cartReducer = (สถานะ, การกระทำ) => { สวิตช์ (action.type) { กรณี 'ADD_TO_CART': return { ...state, รายการ: [...state.items, action.payload] }; กรณี 'REMOVE_FROM_CART': return { ...state, items: state.items.filter(item => item.id!== action.payload.id) }; กรณี 'UPDATE_QUANTITY': return { ...state, items: state.items.map(item => item.id === action.payload.id ? {...item, quantity: action.payload.quantity } : item ) }; ค่าเริ่มต้น: สถานะการส่งคืน; -

ตัวลดนี้สามารถจัดการการเพิ่มสินค้าลงในรถเข็น ลบสินค้าออกจากรถเข็น และอัปเดตปริมาณของสินค้าในรถเข็น

ในฐานะซัพพลายเออร์ตัวลดขนาด ฉันขอเสนอตัวลดคุณภาพสูงหลายประเภทสำหรับกรณีการใช้งานที่แตกต่างกัน ตัวอย่างเช่น หากคุณกำลังทำงานในโครงการที่ต้องใช้วัสดุที่มีความแข็งแรงสูง คุณอาจสนใจผลิตภัณฑ์ของเราตัวลดไทเทเนียม Gr7- ผลิตจากไทเทเนียมคุณภาพสูงและสามารถทนต่อสภาวะที่ยากลำบากได้ และหากคุณต้องการตัวลดที่มีความทนทานต่อสารเคมีโดยเฉพาะ ของเราตัวลดเซอร์โคเนียมอาจจะเข้ากันได้อย่างลงตัว

หากคุณต้องการใช้งานตัวลดกับ React Context API ในโปรเจ็กต์ของคุณและต้องการตัวลดที่เชื่อถือได้ อย่าลังเลที่จะติดต่อเรา ไม่ว่าคุณจะเป็นนักพัฒนาขนาดเล็กหรือองค์กรขนาดใหญ่ เรามีโซลูชั่นที่เหมาะสมสำหรับคุณ เราสามารถให้ข้อมูลจำเพาะโดยละเอียดและการสนับสนุนแก่คุณเพื่อให้แน่ใจว่าคุณจะได้รับประโยชน์สูงสุดจากตัวลดของเรา

ติดต่อเราเพื่อขอข้อมูลเพิ่มเติมและเริ่มกระบวนการจัดซื้อจัดจ้าง เราพร้อมช่วยคุณสร้างแอปพลิเคชัน React ที่ดีขึ้นด้วยตัวลดที่เหมาะสม

Titanium Gr7 ReducerZirconium Reducer

อ้างอิง:

  • โต้ตอบเอกสารอย่างเป็นทางการเกี่ยวกับ Context API
  • โต้ตอบเอกสารอย่างเป็นทางการเกี่ยวกับ useReducer hook