A React element is as simple as a function that returns some valid JSX. Any function will do.
const CustomComponent = ({ children }) => {
return (
<React.Fragment>{children}</React.Fragment>
);
};
This function provides us with a React component that has a fixed name --
CustomComponent
. With the help of the displayName
property, we can
create dynamically named components.
const ComponentGenerator = ({ customName, children }) => {
const CustomComponent = ({ children }) => {
return (
<React.Fragment>{children}</React.Fragment>
);
};
CustomComponent.displayName = customName;
return (
<CustomComponent>{children}</CustomComponent>
);
};
const App = () => {
return (
<ComponentGenerator customName="RandomComponentName">
Hello!
</ComponentGenerator>
);
}
If we inspect the generated React tree, we will not see anything called
<CustomComponent>
, but instead we will see our <RandomComponentName>
component.
Remember, React components need to have an uppercase name.