การสร้างหน้าสแตติกเป็นการใช้ React ตามที่คาดไว้ในเอกสารประกอบสำหรับ React.renderToStaticMarkup
คล้ายกับrenderToString
ยกเว้นสิ่งนี้จะไม่สร้างแอตทริบิวต์ DOM พิเศษเช่นdata-react-id
ที่ React ใช้ภายใน สิ่งนี้มีประโยชน์หากคุณต้องการใช้ React เป็นเครื่องมือสร้างเพจแบบสแตติกธรรมดาเนื่องจากการแยกแอททริบิวต์พิเศษออกมาจะช่วยประหยัดจำนวนไบต์ได้
บางคนเรียกว่าใช้ปฏิกิริยามากเกินไป อย่างไรก็ตามเมื่อฉันต้องการบางสิ่งบางอย่างที่ตายแล้วฉันไม่มีปัญหากับ overkilling ความจริงที่ว่าการตอบสนองสามารถทำได้มากกว่าสิ่งที่จำเป็นสำหรับกรณีการใช้งานนี้คือไม่มีการโต้แย้งโต้แย้ง
อย่างไรก็ตามปัญหาอาจเกิดขึ้นหากคุณต้องการทำรหัสแบบอะซิงโครนัส ลองจินตนาการถึงสิ่งต่อไปนี้:
function SchoolClass({classId}) {
const students = await query("SELECT name FROM student WHERE class = ?", classId);
return <ul>
{_.map(students, ({name}) => <li>{name}</li>}
</ul>
}
แต่สิ่งนี้จะไม่ทำงานเนื่องจากฟังก์ชั่นจะคืนค่า Promise ไม่ใช่องค์ประกอบ React ดังนั้นจึงเข้ากันไม่ได้กับ React หากคุณกำลังสร้างเฟรมเวิร์กเครื่องมือสร้างไซต์แบบคงที่แบบโต้ตอบคุณอาจอนุญาตสิ่งนี้ อย่างไรก็ตามเนื่องจาก React ให้ความสำคัญกับไคลเอนต์ของเว็บแอปจึงไม่ได้รับอนุญาต