#4 Angular dependency injection framework. Иерархия инъекторов. Hierarchical injectors

  Рет қаралды 5,151

Максим Гром

Максим Гром

4 жыл бұрын

Hierarchical injectors в Ангулар имеет сложную запутанную систему provide зависимостей. В этом видео я сделал полный обзор этой темы. Полученные знания позволят строить гибкие архитектурные решения. Умение работать с DI открывает возможности по пониманию различных подходов в Angular
Возможно видео не зайдет с первого раза, добавь в закладки чтобы вернуться к материалу после небольшого отдыха :)
Презентация docs.google.com/presentation/...

Пікірлер: 32
@brucewayne_007
@brucewayne_007 11 күн бұрын
После реакта сложно, но круто! Спасибо огромное за курсы!
@55BUMA
@55BUMA 10 ай бұрын
Я безумно рада, что нашла Ваш канал. Это то, чего мне так не хватало! Спасибо за труд
@grommaks
@grommaks 4 жыл бұрын
Приветствую друзья! Я не тратил времени на просьбу поставить лайк и подписаться, по этому оставлю это в комментариях 🐶 Пишите, что еще хотели бы видеть у меня на канале? Хорошего настроения 😎😸✌️
@kseniaaslamova8994
@kseniaaslamova8994 6 ай бұрын
Да, после опыта вся эта теория совсем по-другому укладывается внутри) Было бы здорово еще разбивку по минутам сделать.
@roma_fek
@roma_fek 10 ай бұрын
крутые примеры, понятное объяснение, спасибо
@igorparampam5984
@igorparampam5984 2 жыл бұрын
Спасибо, отличный материал.
@dmytrokilchytskyi5629
@dmytrokilchytskyi5629 3 жыл бұрын
Хорошо что оставил ссылку на сайт с emoji :) 🤯🤯🤯
@anygun4743
@anygun4743 7 ай бұрын
Важное уточнение к ролику! на 4:10 минуте в emoji находится павлин, а не пеликан
@user-yc6rn8ro6j
@user-yc6rn8ro6j 4 жыл бұрын
Не пеликан а павлин)))
@grommaks
@grommaks 4 жыл бұрын
Блииин 🙀 вот это я ошибся 😂
@ilnurryazhapov9377
@ilnurryazhapov9377 3 жыл бұрын
я даже не заметил))
@sergeisychov9810
@sergeisychov9810 Жыл бұрын
Я тоже заметил этот баг, но не мог вспомнить название "павлин"))
@igor_p13
@igor_p13 4 жыл бұрын
лайфхак для смайликов (emoji) в windows 10 можно использовать win+. (клавиша win одновременно с точкой), можно после этого продолжать печатать английские названия смайлов и они будут фильтроваться. это чтобы набирать смайлики. ✌ без всяких левых сайтов.
@grommaks
@grommaks 4 жыл бұрын
Круто :) обязательно попробую. Если бы еще для убунту были такие штуки 😅
@TheDaZorg
@TheDaZorg 4 жыл бұрын
После того, как навешиваю директиву appMonkey на child компонент, у меня результат такой: Главный питомец - попугай Трудный питомец - попугай Любимый питомец - обезьяна Трудный питомец - обезьяна UPD: В видео ошибка на 19:00 - если добавить директиву на узел app-child, то результат будет как я писал выше, если же повесить директиву на узел app-grand-child, то как раз и будет Главный питомец - попугай Трудный питомец - обезьяна Любимый питомец - кенгуру Трудный питомец - кенгуру Т.к. директива использует хост инжектор, то как раз мы и увидим во второй строке обезьяну, при этом в последние 2 строки по прежнему будет провайдится вью инжектор со значением "кенгуру". PS2: Подозреваю, что ошибка из-за презентации, т.к. если бы писалось и объяснялось "на лету", то это было бы видно сразу, а по итогу перепутались слайды.
@user-jo7jq3vq5b
@user-jo7jq3vq5b Жыл бұрын
Не соглашусь. В видео показано поведение при viewProviders в app-child. Ваш кейс описывает ситуацию, когда в app-child используется массив providers.
@regedam7559
@regedam7559 Жыл бұрын
В пути поиска элемента, Injector возвращается в первый эелемент для того, чтобы определить какому модулю пренадлежит компонент. После чего начинается поиск по модулям (от модуля компонента и до root модуля).
@grommaks
@grommaks Жыл бұрын
Не совсем точно В пути сначала идет поиск по дереву компонентов, viewProviders -> providers до корневого компонента После этого в ближайший ленивый модуль, и так до корневого модуля Потом платформа и ошибка если не найдено Если ленивых модулей нет, то это одна конфигурация и поиск по модулям не происходит, а сразу происходит обращение к инжектору корневого модуля
@regedam7559
@regedam7559 Жыл бұрын
@@grommaks Спасибо, буду знать)
@RedkeiGost
@RedkeiGost 2 жыл бұрын
Интересно, а можно было бы так переопределить компонент или директиву на свою кастомную. Типа подключили модуль МатериалДизинг компонентов, но в нем нам нужно поменять одну директиву. И мы конечно можем её отнаследовать и с другим селектором задекларировать и юзать такую. Но я говорю, было бы иногда удобно просто через родительский модуль подменить директиву в дочернем модуле. С сервисами мы так можем, почему с директивами-пайпами-компонентами не можем, это же плюс гибкость.
@grommaks
@grommaks 2 жыл бұрын
В курсе по Пайпам ангулар я переопределяю пайпу даты и модифицирую ее Переопределять уже готовые директивы и компоненты можно, нужно указать такой же селектор и задекларировать в конце
@RedkeiGost
@RedkeiGost 2 жыл бұрын
@@grommaks ок, спасибо. Но это больше похоже на хак и баг-юзание, чем на фичу. Завтра в коде ангулар проведут оптимизации и способ перестанет работать
@user-ez7hs2cz9u
@user-ez7hs2cz9u Жыл бұрын
При изменении порядка директив на host ничего не изменилось, показывается тот декоратор, который объявлен последним в NgModule, а не тот который указан последним на host
@grommaks
@grommaks Жыл бұрын
Да, при повторном тестировании обнаружил что я ошибся тут
@user-ez7hs2cz9u
@user-ez7hs2cz9u Жыл бұрын
@@grommaks спасибо за ответ, боялась может я что-то не то сделала
@user-ez7hs2cz9u
@user-ez7hs2cz9u Жыл бұрын
@@grommaks и спасибо за отличный материал и подачу
@grommaks
@grommaks Жыл бұрын
@@user-ez7hs2cz9u может с обновлением версии angular что-то изменилось, урок я снимал на 9 версии, а сейчас уже 14 Но скорее всего ошибся :)
@user-glory-of-ukraine
@user-glory-of-ukraine 2 жыл бұрын
тяжело сображается
@boss-rus
@boss-rus Жыл бұрын
с очерёдностью не всё так однозначно... код: результат: Grand-child = 🐈 Child = 🐈 Grand-child = 🐈
@grommaks
@grommaks Жыл бұрын
да, на этот подход не стоит рассчитывать при разработке...в новых версиях и с eslint у меня тоже не работает описанный в видео подход тут лучше сразу избегать неопреденностей такого рода, чтобы не получать баги
@yuryvakolov459
@yuryvakolov459 Жыл бұрын
Очередность зависит от очередности загрузки в модуле!
@grolcoon8798
@grolcoon8798 2 жыл бұрын
23:23 Penguin [ˈpeŋɡwɪn] если кому интересно))
#5 Angular dependency injection framework. @Optional @Self @Host @SkipSelf
20:14
Максим Гром
Рет қаралды 3,3 М.
SPILLED CHOCKY MILK PRANK ON BROTHER 😂 #shorts
00:12
Savage Vlogs
Рет қаралды 20 МЛН
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 8 МЛН
Stay on your way 🛤️✨
00:34
A4
Рет қаралды 28 МЛН
ngOnChanges vs ngDoCheck. ChangeDetectionStrategy OnPush в Angular
18:49
Максим Гром
Рет қаралды 9 М.
Понимание механизма "Инъекции зависимостей" DI
6:16
Архитектор ПО. Александр Желнин
Рет қаралды 2,4 М.
Статические члены класса в Java
3:26
Оксана Еськова. Основы программирования
Рет қаралды 48
Как тестировать компоненты - Unit-тестирование в Angular
54:28
SPILLED CHOCKY MILK PRANK ON BROTHER 😂 #shorts
00:12
Savage Vlogs
Рет қаралды 20 МЛН