Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для Отец Олег
14 / 10 / 4
Регистрация: 12.12.2014
Сообщений: 202

Большое количество импортов - плохо?

23.11.2021, 19:00. Показов 1737. Ответов 3

Студворк — интернет-сервис помощи студентам
Господа! Кто давно работает в React? Помогите разобраться. Есть некий файл. В нем слишком много импорта:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import mother from './images/mother.jpg';
import mouse from './images/mouse.png';
import saman from './images/saman.png';
import roman from './images/roman.jpg';
import alexandr from './images/alexandr.png';
import sergey_nikolaevich from './images/sergey_nikolaevich.png';
import mv from './images/mv.png';
import logo from './images/logo192.png';
import Mv from "./components/Mv";
import Alexandr from "./components/Alexandr";
import Saman from "./components/Saman";
import Mouse from "./components/Mouse";
import Sergeynikolaevich from "./components/Sergeynikolaevich";
import Mother from "./components/Mother";
import Valya from "./components/Valya";
import Daniil from "./components/Daniil";
import Roman from "./components/Roman";
Можно как-то весь импорт вынести в отдельный файл? Или при сборке код сам оптимизируется и можно не бояться столько импортов? )))

зы. А если будет еще строк 20 импорта? Мне кажется, это не правильно
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2021, 19:00
Ответы с готовыми решениями:

Как сделать слияние двух импортов в mysql без повторов?
Есть такая задача. Делаю импорт в mysl из файлов *.csv. Один раз, второй раз. Как сделать, чтобы строки, которые уже прописались при первом...

Количество дней, когда выпало самое большое количество осадков
В массиве хранится информация о количестве осадков,выпавших за каждый день октября. определить количество дней, когда выпало самое большое...

Разбить большое количество строк (более 15000) на количество до 990 с переносом на новые листы
Нужна помощь в написании макроса для следующей ситуации:имеется файл, в котором более 15000 строк с различной информацией. Необходимо,...

3
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
24.11.2021, 01:11
Отец Олег, можно выполнить ре-экспорт. То есть создать один файл (допустим index.ts) и в него импортировать нужные вам модули (желательно сгруппировать по некому признаку, например компоненты) и экспортировать как объекты. Далее импортировать уже данный файл

JavaScript
1
2
3
4
5
6
7
8
9
10
11
// index.ts
import Valya from "./components/Valya";
import Daniil from "./components/Daniil";
import Roman from "./components/Roman";
 
 
export default {
    Valya,
    Daniil,
    Roman
};
JavaScript
1
2
3
// yourfile.ts
 
import { Valya, Daniil, Roman } from './components'
Если у вас, конечно же, не create-react-app

Цитата Сообщение от Отец Олег Посмотреть сообщение
можно не бояться столько импортов?
Да, их бояться не стоит. По ним можно определять перегруженность компонента.

По итогу ваш собранный воедино проект будет представлять пару минифицированных файлов (все зависит от вашей настройки сборки)
2
 Аватар для Отец Олег
14 / 10 / 4
Регистрация: 12.12.2014
Сообщений: 202
24.11.2021, 11:55  [ТС]
Цитата Сообщение от bodynar Посмотреть сообщение
Если у вас, конечно же, не create-react-app
а если именно create-react-app?

Добавлено через 1 минуту
Цитата Сообщение от bodynar Посмотреть сообщение
По ним можно определять перегруженность компонента.
а как не перегрузить компонент? Какой предел?

Просто я еще только учусь и многого не знаю(((
0
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
24.11.2021, 14:19
Лучший ответ Сообщение было отмечено Отец Олег как решение

Решение

Цитата Сообщение от Отец Олег Посмотреть сообщение
а если именно create-react-app?
Насколько мне известно create-react-app затирает почти все модификации tsconfig. В целях нашей безопасности, как они говорят

Как альтернатива - использовать eject команду и самому управлять процессом сборки пр., а также следить за актуальностью.

Либо же можно попробовать модифицированный CRA.. вот только название не припомню какое у него.
Либо же создавать проект с нуля через webpack, babel и прочие приколы

Цитата Сообщение от Отец Олег Посмотреть сообщение
а как не перегрузить компонент? Какой предел?
Это определяете вы сами.

В идеале - компонент не должен выполнять 1000 (много) задач, а должен отвечать за конкретный функционал. По возможности - выносите в отдельные компоненты функционал. Есть еще, конечно, SRP, но я не совсем уверен уместно ли его применять в react компонентах
Точного значения количества импортов в компоненте для определения перегруженного компонента вам никто не назовет, потому что все зависит от специфики импортов.

Старайтесь по возможности дробить компоненты на более мелкие.

Например компонент списка элементов, у которого есть фильтры (которых 5 штук, они еще находятся в сворачиваемом компоненте), я представил в виде 2 компонентов: списка и фильтров (хотя до этого был 1 компонент и количество импортов было не более 15)

То есть чрезмерное количество импортов - еще не 100% показатель перегруженности компонента, лишь возможный индикатор

Добавлено через 28 минут
Цитата Сообщение от bodynar Посмотреть сообщение
Старайтесь по возможности дробить компоненты на более мелкие.
Но всегда знайте меру
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2021, 14:19
Помогаю со студенческими работами здесь

Большое количество файлов
Добрый день. Есть много файлов около 200. Их нужно разместить на сайт Joomla, чтобы обычные пользователи могли зайти на сайт кликнуть по...

Большое количество вирусов в ПК
windows script host создает бесконечные оповещения что заблокировал вредоносное ПО антивирусом. Таких табличек появляется дохрена. ПК...

Большое количество команд
Всем доброго времени суток. Сразу к делу) Нужно внести в таблицу (БД, Oracle) 6000+ строк. Как делаю: В цикле формирую строку из...

Большое Количество Ссылок Nothing
Вопрос больше теоретический, без примера. У меня есть объект, в нем второй объект, в этом объекте ссылки на несколько NotesDocument....

большое количество точек
Здравствуйте, как возможно оптимизированно хранить где либо и прорисовывать соответственно на графике без тормозов ну скажем миллион точек,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru