ใน React 16.2 Fragments
มีการเพิ่มการสนับสนุนที่ปรับปรุงแล้ว ข้อมูลเพิ่มเติมสามารถดูได้ที่โพสต์บล็อกของ React ที่นี่
เราทุกคนคุ้นเคยกับรหัสต่อไปนี้:
render() {
return (
// Extraneous div element :(
<div>
Some text.
<h2>A heading</h2>
More text.
<h2>Another heading</h2>
Even more text.
</div>
);
}
ใช่เราต้องการ div container แต่ก็ไม่ใช่เรื่องใหญ่
ใน React 16.2 เราสามารถทำได้เพื่อหลีกเลี่ยง div container ที่อยู่โดยรอบ:
render() {
return (
<Fragment>
Some text.
<h2>A heading</h2>
More text.
<h2>Another heading</h2>
Even more text.
</Fragment>
);
}
ไม่ว่าในกรณีใดเรายังจำเป็นต้องมีองค์ประกอบคอนเทนเนอร์ล้อมรอบองค์ประกอบภายใน
คำถามของฉันคือทำไมใช้Fragment
ดีกว่า มันช่วยในเรื่องประสิทธิภาพหรือไม่? ถ้าเป็นเช่นนั้นทำไม จะรักวิปัสสนาบ้าง
div
คือคุณไม่ต้องการองค์ประกอบ wrapper องค์ประกอบของ Wrapper มีความหมายและโดยปกติคุณต้องมีสไตล์เพิ่มเติมเพื่อลบความหมายนั้นออก <Fragment>
เป็นเพียงน้ำตาลทรายที่ไม่ได้ให้ผล มีบางสถานการณ์ที่การสร้าง wrapper นั้นยากมากตัวอย่างเช่นใน SVG ที่<div>
ไม่สามารถใช้งานได้และ<group>
ไม่ได้เป็นอย่างที่คุณต้องการเสมอไป