13 May 2022, 14:10 UTC≈4,800 views37 reactionsread 6 August 2026 Лайфхак для использования React.lazy с именованными экспортами
export const namedLazy = <T extends Record<string, any>>(
loader: () => Promise<T>,
name: keyof T,
) =>
React.lazy(async () => {
const module = await loader()
return { default: module[name] }
})
Использование:
const Component = namedLazy(() => import('./component'), 'ComponentName')
Кстати, WebStorm при рефакторинге с переименование…
🔥31👍5👎1
24 Jan 2020, 11:26 UTC≈10,200 views2 reactionsread 6 August 2026 Была ли эта информация полезна?
👍1👎1
24 Jan 2020, 11:19 UTC≈10,200 viewsread 6 August 2026 Дополнительная информация:
- Google в своем стайлгайде предлагает использовать именованные экспорты:
https://google.github.io/styleguide/jsguide.html#es-module-exports
- В Gitlab перешли на именованные экспорты:
https://gitlab.com/gitlab-org/frontend/rfcs/issues/20
24 Jan 2020, 11:07 UTC≈9,750 views0 reactionsread 6 August 2026 Исключения:
- Экспорт основного содержимого библиотеки.
(например, чтобы можно было сделать так: import React from 'react')
Тем не менее, обычно это все еще нежелательно.
- Некоторые модули, которые в соответствии с архитектурой фреймворка должны быть экспортированы по умолчанию.
(например, компоненты страниц в Next.js)
- Различные конфиги и все остальное, чьими потребителями является программный код, а не р…
24 Jan 2020, 10:58 UTC≈9,020 views25 reactionsread 6 August 2026 - export default позволяет экспортировать анонимные функции:
Если где-либо будет выброшена ошибка, в ее stack trace все анонимные функции, через которые она прошла, будут помечены записью at <anonymous>, что усложнит поиск места возникновения данной ошибки.
В React, если таким способом экспортировать компонент, он не получит имени в дереве компонентов в React DevTools, следовательно будет сложнее увидеть полную кар…
👍23❤1👎1
24 Jan 2020, 10:25 UTC≈6,920 viewsread 6 August 2026 Почему не стоит использовать export default в своей кодовой базе?
Channel created
Showing the 7 most recent of 7 posts we hold for @why_not_export_default. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.