Насколько мне известно,
loadChildren используется для ленивой загрузки модулей, но не компонентов. Это означает, что вы загружаете все компоненты, содержащиеся в модуле, в браузер. Это будет полезно для ленивой загрузки функциональных модулей
Для ленивой загрузки компонентов (функция Angular 9) нам понадобится ComponentFactoryResolver.
ComponentFactoryResolver также требуется для загрузки любые компоненты динамически (существующая функция во всех версиях Angular2 +)
Да, конечно, нам нужен ViewContanierRef , который действует как заполнитель для добавления нового компонента в определенное место в DOM
PS: я не добавляю примеры кодов только для того, чтобы быть в рамках вопроса