props ย่อมาจาก Properties คือ เอาไว้ผ่านค่าเข้าไปยัง Component และ Component นำค่า props ไปใช้ในส่วนต่างๆ ของ Component
มาดูวิธีการผ่านค่ากัน !!!
การผ่านค่า props ไปยัง Child Component มี 2 แบบ
การผ่านค่า props ค่าเดียว และ การผ่านค่า props หลายค่า ให้กับ Component
มาลองเขียนกัน ให้เราไปที่ App.js และแทรกเอลิเมนต์ที่ต้องการจะผ่านค่าให้ ในที่นี้เราเลือกเป็น เอลิเมนต์ FunctionName อย่าลืม อิมพอร์ตเข้ามาด้วยน่ะ “ตอนนี้ FunctionName เป็น ChildComponent ของ App [Appที่ถูกเขียนในรูปของ Functioncomponent ]”
มาดูค่า props กันทุกคน !!! ที่เราผ่านค่าเข้าไปกัน
การดูค่า props ใน FunctionComponent
เราต้องการจะเห็นค่าที่เราผ่านค่าเข้าไป ให้เราไปที่ ไฟล์ Function.js และ ผ่านค่า props เข้าไปใน FunctionName ค่อย console.log() แสดงค่า Properties ออกมาให้เรา ทางหน้าต่าง Console บน Browser
การดูค่า props ใน ClassComponent
เราต้องการจะเห็นค่าที่เราผ่านค่าเข้าไป ให้เราไปที่ ไฟล์ ClassComponent.js โดยการ console.log(this.props) แสดงค่า Properties ออกมาให้เรา ทางหน้าต่าง Console บน Browser
มาถึงการนำค่าที่ผ่านมาใช้งานแล้วล่ะ!!!
การใช้งาน props ใน FunctionComponent
เมื่อเราผ่านค่า props ไปใน FunctionComponent แล้ว เราก็ต้องการที่จะใช้งานค่า ที่อยู่ใน props นั้นได้
อันดับแรกให้เราไปที่ไฟล์ Function.js และผ่านค่าพารามิเตอร์ props เข้าไปให้ฟังก์ชัน และสร้างตัวแปร id มาเก็บค่า props.id ที่ผ่านเข้ามา
อันดับที่สอง ไปที่ไฟล์ App.js แล้วแทรกเอลิเมนต์<FuntionName></FunctionName>
การใช้งาน props ใน ClassComponent
ใน ClassComponent React กำหนดให้ props เป็น properties ของ class โดยอัตโนมัติ ถ้าต้องการใช้งาน props ที่ผ่านเข้ามาใน Component ก็อ้างค่าต่างๆใน props ได้เลย
อันดับแรกให้ไปที่ไฟล์ ClassComponent.js
อันดับที่สองไปที่ไฟล์ App.js และแทรกเอลิเมนต์ <ClassComponent></ClassComponent> ผ่านค่า id=”one” และเนื้อหาไปในเอลิเมนต์
การรับค่า Children ที่มาจาก props
ใน JSX เนี่ย จะมีแท็กเปิดและแท็กปิด เช่น <FunctionName></FunctionName> เราอ่ะ สามารถแทรกข้อความ แทรกแท็ก หรือ Component ลงไปได้ ระหว่างแท็กได้ เช่น อย่างงี่ๆๆ
แทรกข้อความ
<FunctionName id="1">Hello</FunctionName>
แทรกแท็ก
<FunctionName id="2"><h3>Hello</h3></FunctionName>
แทรก Component
<FunctionName id="3"><ClassComponent data="9 Stars" userId="3" /></FunctionName>
เรามาดูกัน การรับค่า Children ที่มาจาก props และเราจะเขียนแบบ แทรก Component
เราเริ่มต้นไปที่ไฟล์ Function.js และแก้ไขโค้ด
เสร็จแล้วไปที่ไฟล์ ClassComponent.js และแก้ไข
สุดท้ายไปที่ไฟล์ App.js เพื่อที่จะดูค่า children ที่มาจาก props
มาดูผลลัพธ์กัน ตรงตามที่เราผ่านค่ามาจ้า
อะเคร!!! ไว้มาต่อกันอีก ตอนนี้เราผ่านค่า props ไปยัง Child Component ได้แล้ว บ๊ายยยย ครั้งหน้าเราจะมาตกแต่งกันด้วย CSS และ Bootstrap