คำตอบอื่น ๆ ทั้งหมดทำงานได้ดี แต่ฉันจะเพิ่มพิเศษเพราะโดยทำสิ่งนี้:
- มันปลอดภัยกว่านิดหน่อย แม้ว่าการตรวจสอบชนิดของคุณจะล้มเหลวคุณยังคงส่งคืนส่วนประกอบที่เหมาะสม
- มันเป็นที่เปิดเผยมากขึ้น ทุกคนโดยการดูที่ส่วนนี้สามารถเห็นสิ่งที่จะกลับมา
- มันมีความยืดหยุ่นมากกว่าเช่น 'h1', 'h2', ... สำหรับประเภทหัวเรื่องของคุณคุณสามารถมีแนวคิดนามธรรมอื่น ๆ 'sm', 'lg' หรือ 'primary', 'Secondary'
องค์ประกอบหัวเรื่อง:
import React from 'react';
const elements = {
h1: 'h1',
h2: 'h2',
h3: 'h3',
h4: 'h4',
h5: 'h5',
h6: 'h6',
};
function Heading({ type, children, ...props }) {
return React.createElement(
elements[type] || elements.h1,
props,
children
);
}
Heading.defaultProps = {
type: 'h1',
};
export default Heading;
ซึ่งคุณสามารถใช้มันได้เช่น
<Heading type="h1">Some Heading</Heading>
หรือคุณสามารถมีแนวคิดนามธรรมที่แตกต่างกันตัวอย่างเช่นคุณสามารถกำหนดอุปกรณ์ประกอบฉากขนาดเช่น:
import React from 'react';
const elements = {
xl: 'h1',
lg: 'h2',
rg: 'h3',
sm: 'h4',
xs: 'h5',
xxs: 'h6',
};
function Heading({ size, children }) {
return React.createElement(
elements[size] || elements.rg,
props,
children
);
}
Heading.defaultProps = {
size: 'rg',
};
export default Heading;
ซึ่งคุณสามารถใช้มันได้เช่น
<Heading size="sm">Some Heading</Heading>