Проверяет понимание того, как React определяет имя функционального компонента в DevTools и какие приёмы позволяют задать его без использования displayName.
React DevTools определяет имя компонента, анализируя функцию, из которой он создан. Для функциональных компонентов это свойство name самой функции, а для компонентов, созданных через React.memo или forwardRef, — имя обёртки или внутренней функции. Если функция анонимная, DevTools покажет Anonymous, что затрудняет отладку.
function MyComponent() {} — имя берётся из MyComponent.const MyComponent = () => {} — имя выводится из имени переменной.export default () => {} — имя будет Anonymous.React.memo и forwardRef — передавать именованную функцию.name через Object.defineProperty.// Плохо: имя будет Anonymous
// export default () => <div>Hello</div>;
// Хорошо: имя UserCard
function UserCard() {
return <div>Hello</div>;
}
export default UserCard;
// Или через переменную
const UserCard = () => <div>Hello</div>;
export default UserCard;
// Для memo
const MemoUserCard = React.memo(function UserCard() {
return <div>Hello</div>;
});
Итог: чтобы DevTools показывал понятное имя без displayName, достаточно объявлять компоненты как именованные функции или присваивать их переменным с осмысленными именами — это упрощает отладку и чтение дерева компонентов.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию