Ваша проблема на самом деле не в меньшем, а в общей проблеме оптимального комплектования веб-приложения. Поскольку вы не предоставляете свой основной компонент приложения или конфигурацию вашего веб-пакета (при условии, что вы используете веб-пакет для пакетирования), я, очевидно, не знаю деталей вашей настройки. В целом, однако, стандартная конфигурация заключается в объединении всех компонентов и других импортируемых файлов, доступных из файла точки входа, в один большой файл. Тот факт, что вы используете реагирующий маршрутизатор или аналогичный для разделения вашего приложения на «страницы», это не меняет, поскольку реагирующий маршрутизатор влияет только на то, какие компоненты отображаются, а не на связывание.
Если вам нужно разделить ваше приложение на несколько пакетов (что IMO требует относительно большого приложения для рассмотрения), вы можете использовать динамический импорт, чтобы сделать некоторые из ваших компонентов «загружаемыми». Это означает, что они будут помещены в отдельный пакет, который загружается только по мере необходимости. В документации по маршрутизатору реакции есть руководство по настройке: https://reacttraining.com/react-router/web/guides/code-splitting