Какая польза от использования общего модуля и повторного использования этого общего модуля в app.module.ts.
Каждый раз, когда страница загружается, app.module.ts, в свою очередь, вызывает общий модуль.
Вместо этого мы могли бы опустить общий модуль и ссылаться на все компоненты непосредственно в файле app.module.ts вместо общего модуля.
Читаемость - вот почему мы используем модули. Вы также можете создать один компонент приложения длиной 70 000 строк, ничто не мешает вам это сделать.
Также есть возможность повторного использования, которая позволяет вам использовать этот общий модуль в других проектах, просто скопировав и вставив папку.
Официальный документы хорошо это объясняет.





Компоненты должны быть объявлены только один раз, но доступны другим компонентам в нескольких модулях. На помощь приходит SharedModule - это место, где компоненты объявляются один раз, но при импорте SharedModule компоненты (экспортированные) становятся доступными в качестве зависимостей для других.
В качестве лучшего решения мы можем сделать RootModule со всеми повторно используемыми каналами, директивами и компонентами во всем приложении. Все остальные компоненты должны создаваться как модули. Например, проверьте ngBootstrap. Это позволяет нам лучше разделять код по кускам, поскольку все модули зависят от того, что они действительно используют.
Вам не обязательно добавлять общий модуль в модуль приложения, вы можете просто импортировать его в любой модуль, который этого требует.