#3 Angular dependency injection framework. Providers. Полный обзор вариантов провайдеров

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024

ความคิดเห็น • 57

  • @grommaks
    @grommaks  4 ปีที่แล้ว +27

    Приветствую друзья!
    Я не тратил времени на просьбу поставить лайк и подписаться, по этому оставлю это в комментариях 🐶
    Пишите, что еще хотели бы видеть у меня на канале?
    Хорошего настроения 😎😸✌️

  • @aleksandrzelenskiy4000
    @aleksandrzelenskiy4000 4 ปีที่แล้ว +13

    Просто смотреть не так эффективно, нужно самому все проделать. Очень нужный и сильный материал, спасибо!

  • @mila4308
    @mila4308 4 หลายเดือนก่อน +2

    девочки тоже есть)) у нас на проекте больше женского пола, чем мужского

  • @brucewayne_007
    @brucewayne_007 2 หลายเดือนก่อน +1

    В 5 пункте не ясно почему сервис не injectable если по итогу инъекция происходит
    Очень круто!

  • @ДиляраСафина-г6ч
    @ДиляраСафина-г6ч 4 ปีที่แล้ว +6

    Добавляю второй на канале женский комментарий. Спасибо за то что помогли лучше разобраться в DI)

    • @grommaks
      @grommaks  4 ปีที่แล้ว

      Спасибо 🌺

  • @nadyanaryvkina3576
    @nadyanaryvkina3576 2 ปีที่แล้ว +3

    Оставлю комент за девушек) Спасибо за разбор!

  • @evgenlazeykin8537
    @evgenlazeykin8537 4 ปีที่แล้ว +7

    Круто. Продолжай в том же духе)

  • @GGSoft2009
    @GGSoft2009 2 ปีที่แล้ว +3

    Интепесно было бы Ваши лекции по поводу: Как работать с капчой: С datetimepicker; с локализацией на прымере; с RxJs; File upload; Как развернуть на сервере; По моему что-то изменилось в 14 версии (Будто не надо комп.-ов зарегистрыровать в NgModule) по подробнее если можно: Ваш ждет успех. Так что продольжайте

  • @denisbielishev
    @denisbielishev 3 ปีที่แล้ว +4

    UseExisting используем, если нам нужен синглтон. Например: state manadger ngrx является единым источником правды (один объект). И мы хотим, чтобы у нас состояние всего приложения хранилось в одном месте.

  • @davidbaghdasaryan2486
    @davidbaghdasaryan2486 4 ปีที่แล้ว +6

    Больше по архитектуре Ангуляр 👌🎉

  • @davidbaghdasaryan2486
    @davidbaghdasaryan2486 4 ปีที่แล้ว +5

    Хороший контент спасибо. Ангуляр лучший

  • @brucewayne_007
    @brucewayne_007 2 หลายเดือนก่อน

    5 и 6 разве аналогичны? Насколько я понял, в 5 вручную передаём экземпляр сервиса в каждом месте, где инъекция будет, а в 6 поставили @injectable и автоматом всё будет делать ангуляр, создаст один общий 6?

  • @someinc
    @someinc 10 หลายเดือนก่อน +2

    Возвращаюсь к этим видео спустя опыт и наконец-то понимаю о чём речь, спасибо за твой труд!

  • @זינהמזיריצקי
    @זינהמזיריצקי 2 ปีที่แล้ว +3

    Материал был очень полезен

  • @EvgeniySchem
    @EvgeniySchem ปีที่แล้ว +1

    В 13 ангуляре возникал ошибка "Property 'pageConfig' does not exist on type 'AppComponent'." при внедрении @Inject(PAGE_CONFIG) pageConfig: PageConfig.
    Получилось её решить добавлением модификатора доступа @Inject(PAGE_CONFIG) public pageConfig: PageConfig

  • @ЕвгенийБондаренко-с5е
    @ЕвгенийБондаренко-с5е 2 ปีที่แล้ว +2

    в конструкторе забыли модификатор доступа, см 1:44

    • @grommaks
      @grommaks  2 ปีที่แล้ว +2

      Не забыл) Если нужно сохранить как свойство объекта, то нужно указывать, если будете использовать только в самом конструкторе, то не нужно указывать

  • @denisbielishev
    @denisbielishev 3 ปีที่แล้ว +2

    const pageConfigValue: PageConfig = {title: `Вот бы перерыв сейчас :)`}

  • @SALEMVSEM
    @SALEMVSEM 3 ปีที่แล้ว +3

    спасибо за подробное и внятное объяснение столь сложной темы

  • @mila4308
    @mila4308 4 หลายเดือนก่อน +1

    спасибо большое за подробный, интересный, понятный курс 🤩🙏

  • @GGSoft2009
    @GGSoft2009 2 ปีที่แล้ว +2

    Большое спасибо за труд!!! Это наверное можно применить к уже существующему проекту, где заказчик позже попросил поменять поведение класса к определенной области и при этом нужно оставить существующий клас тоже.

    • @grommaks
      @grommaks  2 ปีที่แล้ว +1

      Это способ разворота зависимости, из-за чего можно как создавать изолированные модули, так и гибко подменять логику в существующих модулях

  • @kseniaaslamova8994
    @kseniaaslamova8994 8 หลายเดือนก่อน +1

    Спасибо за подробное описание, наконец, понятно, что все эти записи в модулях значат)

  • @olegzozulia6898
    @olegzozulia6898 8 หลายเดือนก่อน

    Додивився і вийшов покурити.

  • @RedkeiGost
    @RedkeiGost 3 ปีที่แล้ว +1

    Строк для лохов. Шаблонные литералы для четких es6 и далее поцанчиков. [крутой смайл]
    Воспринимать как шутку.

    • @grommaks
      @grommaks  3 ปีที่แล้ว +1

      Да упокоится с миром IE11 и его поддержка в 2021 году

  • @ibrmkoibrmko2493
    @ibrmkoibrmko2493 ปีที่แล้ว +1

    Спасибо. Очень подробно и внятно

  • @IngvarLosev
    @IngvarLosev 2 ปีที่แล้ว +2

    Спасибо огромное!!!

  • @vladbelov5875
    @vladbelov5875 3 ปีที่แล้ว +1

    Отличное и информативное видео! Спасибо вам большое!

  • @antonasipenka2941
    @antonasipenka2941 2 ปีที่แล้ว +1

    Спасибо! Замечательный материал

  • @denya_manunited
    @denya_manunited 4 ปีที่แล้ว +2

    Сделай пожалуйста отдельное видео по декораторам в Nestjs или Angular. Но всё же предпочтительнее в Nest))
    Пишу проект на Nest, а до этого с Angular не сталкивался.
    Вот и "смущают" меня эти декораторы

    • @grommaks
      @grommaks  4 ปีที่แล้ว +2

      Гуд постараюсь снять видео на эту тему)
      Тут нужны уточнения
      1) Не понятен сам механизм декоратора и фабрики декораторов?
      2) Не понятны какие существуют декораторы в NestJs
      3) Не понятно как создавать свои декораторы в NestJS
      4) Свой вариант? :)

    • @denya_manunited
      @denya_manunited 4 ปีที่แล้ว +2

      @@grommaks Больше всего 1-й и 3-й пункты

    • @grommaks
      @grommaks  4 ปีที่แล้ว +4

      Denis Dyadya Круто
      Как раз планировал дописать уроки по TypeScript
      Декораторы это полностью фишка TypeScript
      Добавил в план, пралельно или после этого курса допишу уроки по TS где рассмотрю эту тему подробно с примерами 😉

    • @denya_manunited
      @denya_manunited 4 ปีที่แล้ว +2

      @@grommaks ОК, спасибо заранее, буду ждать)

  • @regedam7559
    @regedam7559 ปีที่แล้ว +1

    Начиная с 14 версии Angular, можно использовать inject() метод внутри useFactory, вместо того, чтобы явно указывать зависимости в deps массиве и передавать их как параметры

    • @grommaks
      @grommaks  ปีที่แล้ว +1

      Как оказывается, inject был доступен гораздо раньше. В release notes некоторые блогеры указывают что это пришло именно с 14 версией, но большинство блогеров ничего об этом не говорят. Официальные ноуты вроде тоже не упомянули эту фичу (еще не проверял)
      P.S. в 13 ангуларе использовал inject
      P.S.S. deps нужен не для того, чтобы потянуть зависимость, а для того, чтобы сказать DI что мы зависим от этих токенов. Если заменить на inject, то если зависимость еще не была решена, мы можем получить ошибку...причем при компиляции поведение может меняться и нет гарантии работоспособности.
      P.S.S.S. если на то нет везких причин, не стоит использовать inject, за счет удобства написания трех строчек кода, мы получим менее расширяемый код и потенциальные баги

    • @regedam7559
      @regedam7559 ปีที่แล้ว +1

      @@grommaks Спасибо за объяснения! Очень полезная инфа

  • @bukanaka
    @bukanaka 2 ปีที่แล้ว +2

    Материал топовый, без него никакой Ингуляршек не будет самим собой

    • @grommaks
      @grommaks  2 ปีที่แล้ว +1

      Но спустя больше года, я накопил дополнительной информации по этой теме) и мечтаю найти время, чтобы переснять с учетом всех правок)

    • @bukanaka
      @bukanaka 2 ปีที่แล้ว +1

      @@grommaks Очень бы хотелось)

    • @galinagorbel
      @galinagorbel 2 ปีที่แล้ว +1

      @@grommaks Найдите, пожалуйста!

    • @grommaks
      @grommaks  2 ปีที่แล้ว +2

      @@galinagorbel Сразу как закончу плейлист по базовому ангулар буду переснимать смежные плейлисты, по DI, TS и другим темам, чтобы курс был полноценный и комплексный)

    • @galinagorbel
      @galinagorbel 2 ปีที่แล้ว

      @@grommaks это будет какой-то новый плейлист или дополняете тот, который называется Первое знакомство с Angular?

  • @Renarus
    @Renarus 2 ปีที่แล้ว

    Про useExisting правильно уже написали, что это singleton. А яркий пример где это может быть использовано, например получение ConnectionString к БД.

    • @grommaks
      @grommaks  2 ปีที่แล้ว

      Это не синглтон, это означает что резольвер попробует найти созданный объект у родительских инжекторов, если не найдёт то создаст новый. Синглтон этого когда гарантируется один и только один инстанс некоторого класса

  • @VendettaUkraina
    @VendettaUkraina 4 ปีที่แล้ว

    useClass и useExisting еще понятно что можно использовать в юнит тестировании, мокая данные с сервисов и так далее.
    Но фабрики не совсем понятно, в одном файле хранится строка, и мы делаем DI в модуле импортируя этот файл туда, а в компоененте мы обратно иппортируем этот файл со строкой но уже с декораором @Inject. Почем нельзя просто импортировать этот файл со строкой сразу в компонент оминая манипуляции в модуле, на кой чёрт делать всякие фабрики в модуле при этом усложняя код и 2 раза импортируя файл. Я извиняюсь, но я действительно не вижу профиту в таких лишних манипуляциях, как по мне это какое то усложнение кода

    • @grommaks
      @grommaks  4 ปีที่แล้ว

      @Inject используется чтобы внедрить токены. Например интерфесы только через токен можно, строки, массивы
      Выгода в том что их легко переопределить у себя в проекте

    • @bukanaka
      @bukanaka 2 ปีที่แล้ว

      Что не является классом внедрить без @Inject() не получится, для этого и создаётся токен интерфейса, объекта и т.д., чтобы внедрить таким образом, иначе никак

  • @MovaClub
    @MovaClub ปีที่แล้ว

    хрєновєнькоє обьяснєніє

    • @grommaks
      @grommaks  11 หลายเดือนก่อน

      🥲