#javascript #reactjs #typescript #ecmascript-6
#javascript #reactjs #typescript #ecmascript-6
Вопрос:
Есть ли какое-либо снижение производительности, нежелательные побочные эффекты или предпочтительный стандарт при экспорте анонимного компонента React по сравнению с именованным компонентом?
анонимный экспорт компонентов
import React from 'react';
export default ({ title }) => <div>{title}</div>;
экспорт именованного компонента
import React from 'react';
const MyComponent = ({ title }) => <div>{title}</div>;
export default MyComponent;
Комментарии:
1. Это даже не именованный экспорт, это просто экспорт по умолчанию значения, хранящегося в переменной.
Ответ №1:
Это не влияет на производительность, но именование обеспечивает лучшую читаемость и функциональность вашего редактора
Ответ №2:
Именованный экспорт действительно необходим только тогда, когда вы выполняете экспорт не по умолчанию.
Я не согласен с вышесказанным.
Предпочтительнее использовать IntelliSense и / или TypeScript export default MyComponent
, поскольку это сообщает Intellisense и TypeScript больше и позволяет автоматически импортировать ваш модуль с использованием расширений в вашей IDE. Если нет снижения производительности, то именованный экспорт является лучшим синтаксисом.
Ответ №3:
Если вы напишете «экспорт по умолчанию () => { … }» чтобы объявить компоненты, они:
- будет отображаться как анонимный в трассировках стека
- будет отображаться как неизвестный в DevTools
- не будет проверяться специфичными для React правилами lint
- не будет работать с некоторыми функциями, такими как быстрое обновление
Ответ №4:
Снижения производительности нет, поскольку экспорт по умолчанию фактически именуется во время импорта, т.е.: import MyFancyNamedComponent from './MyComponent'
Именованный экспорт действительно необходим только тогда, когда вы выполняете экспорт не по умолчанию.