การติดตามสถานะของแอปพลิเคชันคือวิธีที่แอปพลิเคชันหน้าเดียว (SAP) ลงทะเบียนการเปลี่ยนแปลงและแสดงผลให้กับผู้ใช้ ต่างจากเฟรมเวิร์กโมเดล มุมมอง ตัวควบคุม (MVC) SAP จะไม่เปลี่ยนเส้นทางผู้ใช้ ดังนั้นจึงต้องการวิธีจัดการการเปลี่ยนแปลงที่มาจากฝั่งไคลเอ็นต์ หากต้องการตรวจสอบเฟรมเวิร์ก MVC ให้อ้างอิงกับคู่มือนี้
ใน React ส่วนประกอบสามารถจัดการสถานะของตนเองและแสดงผลใหม่ได้ตามลำดับ ซึ่งทำได้โดยใช้วิธีวงจรชีวิต ซึ่งจะกล่าวถึงในเชิงลึกที่นี่ สำหรับวัตถุประสงค์ของบทความนี้ เราจะมาดูวิธีการเปลี่ยนสถานะโดยใช้ setState
คู่มือนี้จะถือว่ามีความคุ้นเคยกับ React เบื้องต้น ในการทบทวนหรือเรียนรู้พื้นฐานของ React บทความนี้แสดงรายการแหล่งข้อมูลการเรียนรู้ React ที่ดีที่สุดบางส่วน
React setState คืออะไร
เมธอด React setState คือวิธีการเปลี่ยนสถานะของส่วนประกอบด้วยความเสถียร มีแนวทางเฉพาะในการเปลี่ยนสถานะใน React
- setState สามารถเรียกได้ภายในองค์ประกอบคลาสเท่านั้น ส่วนประกอบของคลาสเรียก
constructor()
วิธีการและตั้งค่าสถานะเริ่มต้น จากนั้นเราสามารถเปลี่ยนสถานะเพิ่มเติมได้โดยเรียก setState
มีส่วนประกอบสองประเภทที่แตกต่างกันใน React มีองค์ประกอบการทำงานและองค์ประกอบคลาส สำหรับจุดประสงค์ของเรา เราอ้างอิงเฉพาะส่วนประกอบของคลาส สำหรับการตรวจสอบเพิ่มเติม โปรดดูบทความนี้เกี่ยวกับความแตกต่างระหว่างส่วนประกอบการทำงานและส่วนประกอบในชั้นเรียน
- เพียงแค่เรียก setState ในองค์ประกอบคลาส เราสามารถอ้างอิงส่วนประกอบโดยตรงโดยใช้ สิ่งนี้ คำสำคัญ. กำลังเรียก
this.setState()
เป็นแนวทางปฏิบัติที่ดีที่สุดและช่วยให้มั่นใจว่าโค้ดของคุณจะไม่พัง
- ห้ามแก้ไขสถานะโดยตรง การแก้ไขสถานะโดยตรงจะไม่ลงทะเบียนเพื่อตอบโต้เพื่อแสดงซ้ำ จุดรวมของการเปลี่ยนแปลงสถานะคือการเรียกใช้การแสดงผลซ้ำของส่วนประกอบนั้นเพื่อสะท้อนการเปลี่ยนแปลงกลับไปยังผู้ใช้
ตอนนี้ มาดูไวยากรณ์ในบริบทของหลักเกณฑ์เหล่านี้กัน
ไวยากรณ์ setState React
เริ่มต้นด้วยแนวทางแรก เราจะเห็นว่าเราสามารถใช้ setState ภายในองค์ประกอบคลาสเท่านั้น ตัวอย่างเช่น สมมติว่าเรามีแอปสำหรับซื้อของและเราต้องการใช้ตะกร้าสินค้า เราสามารถตั้งค่าองค์ประกอบคลาสที่เรียกว่ารถเข็น องค์ประกอบนี้จะรับผิดชอบในการจัดการสถานะของตนเองเมื่อผู้ใช้เพิ่มสินค้าลงในรถเข็น
class Cart extends React.Component { constructor(props){ super(props); this.state = {shoppingCart: []} }
เมื่อแยกย่อยรหัสข้างต้น เราประกาศคลาสส่วนประกอบรถเข็น เช่นเดียวกับองค์ประกอบคลาสทั้งหมด เรา ขยาย React.ส่วนประกอบ นี่คือไวยากรณ์ React ต้นแบบ
เนื่องจากเราต้องการกำหนด state ให้กับ component นี้ เราจึงต้องเรียก constructor method จากนั้น คอนสตรัคเตอร์พื้นฐานจะถูกเรียกด้วย super(props) . เป็นไปได้ที่จะเห็นตัวสร้างฐานที่ไม่ได้ถูกเรียกด้วยอุปกรณ์ประกอบฉาก เอกสาร React อย่างเป็นทางการระบุว่าวิธีการสร้างฐานควรถูกเรียกด้วยอุปกรณ์ประกอบฉากเสมอ
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ตอนนี้เราได้สร้างมันผ่านไวยากรณ์ React ที่จำเป็นในการสร้างองค์ประกอบคลาสเพื่อคงสถานะแล้ว เราก็พร้อมที่จะกำหนดสถานะเริ่มต้นของเรา นี่เป็นครั้งเดียวที่เราสามารถอ้างอิงถึงรัฐได้โดยตรง กำหนดสถานะโดยการเรียก this.state = {shoppingCart: [] }
ทำให้เราสามารถกำหนดสถานะเริ่มต้นของตะกร้าสินค้าของเราเป็นอาร์เรย์ที่ว่างเปล่าได้
ตอบสนองตัวอย่าง setState
ในส่วนข้างต้น เราได้พิจารณาไวยากรณ์ที่เกี่ยวข้องกับการประกาศสถานะเริ่มต้น เมื่อสถานะถูกตั้งค่าในวิธี Constructor เราสามารถแสดงผลได้ตามปกติ:
class Cart extends React.Component { constructor(props) { super(props); this.state = { shoppingCart: [] } } render() { return ( <div> <h1>Your Shopping Cart</h1> <div>{this.state.shoppingCart}</div> </div> ); } } ReactDOM.render( <Cart />, document.getElementById('root') );
ที่นี่ เรามีองค์ประกอบคลาสรถเข็นพร้อมชุดสถานะเริ่มต้นและกำลังแสดงรถเข็นในคำสั่งส่งคืนของวิธีการเรนเดอร์ มาดูกันว่าเราจะใช้ setState เพื่ออัปเดตรถเข็นของเราได้อย่างไร
เรากำหนดฟังก์ชั่นที่จะเพิ่มสินค้าใหม่ให้กับรถเข็นของเราในขณะที่รักษาสินค้าที่เพิ่มไว้ก่อนหน้านี้ เราใช้ตัวดำเนินการการแพร่กระจายของ JavaScript (…) เพื่อสร้างสำเนาของสถานะเริ่มต้นและอัปเดตด้วยสถานะใหม่ วิธีนี้ตะกร้าสินค้าจะเก็บสินค้าทั้งหมดที่เพิ่มเข้ามา
addItem(newItem) { this.setState({ shoppingCart: [...this.state.shoppingCart, newItem] }) }
สามารถใช้ฟังก์ชัน addItem ภายในแอตทริบิวต์ onClick ของ React ของปุ่มได้ หากเราต้องการให้ผู้ใช้เพิ่มรายการนั้นได้เมื่อมีการคลิกปุ่ม เพื่อจุดประสงค์ของเรา การดูวิธีใช้ setState ในบริบทของฟังก์ชันก็เพียงพอแล้ว
บทความนี้มีขึ้นเพื่อเป็นการแนะนำเพื่อทำความเข้าใจวิธีใช้ setState และไม่ละเอียดถี่ถ้วน
บทสรุป
ในบทความนี้ เราได้เรียนรู้ว่า setState คืออะไร แนวทางการใช้งาน ไวยากรณ์ และตัวอย่างโดยย่อ มีขึ้นเพื่อเป็นบทความเบื้องต้นเพื่อสนับสนุนให้คุณเจาะลึกและฝึกฝนการอัปเดตสถานะของส่วนประกอบด้วยตัวคุณเอง
เอกสาร React อย่างเป็นทางการมีตัวอย่างเพิ่มเติมที่จะให้โอกาสในการฝึกฝนมากขึ้น โปรดจำไว้ว่าในแอปพลิเคชันหน้าเดียว การติดตามสถานะของส่วนประกอบเป็นสิ่งสำคัญในการแสดงการเปลี่ยนแปลงต่อผู้ใช้