#2 Angular dependency injection framework. @Injectable декоратор. Как сделать сервис

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

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

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

    4:00 Написано же, что any предоставляет для каждого модуля свой уникальный инстанс. Зачем фантазировать от себя? :))

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

    Приятного просмотра :)
    Если остались вопросы, задавай!)
    Если есть пожелания к видео, кидай в коментарий!)
    Хорошего тебе настроения ;)

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

    С новыми версиями Angular поведение providedIn: 'any' видимо поменялось. Сейчас официальная дока говорит 'any' : Provides a unique instance in each lazy loaded module while all eagerly loaded modules share one instance." То есть все не ленивые модули будут шарить между собой один инстанс сервиса

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

    мужик, ты красавчик. реально классно рассказываешь!

  • @user-san-chous
    @user-san-chous 2 ปีที่แล้ว +3

    Так а для производительности стоит заморачиваться и иногда подключать сервис локально в модуле. Или можно все в root injector и не думать ни о чем?

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

      Есть немного разницы
      1) root injector лучше для производительности, это называется tree shaking - т.е. если никто не использует сервис, то он не добавится в бандл. Если бы сервис был бы подключен в модуле, то в бандл он попал бы с модулем
      2) Я не успел протестировать другой случай, когда два лениво загружаемых модуля тянут root injector, то они его провайдят каждый в свой ленивый модуль, но если этот сервис внедряется кодом базового бандла,и ленивых модулей, то он будет провайдится только в руте
      Это для меня была проблема, когда решил использовать сервис как общее состояние, но когда два модуля имеют свой сервис, то это у каждого свое состояние.
      А если сервис провайдить, то он будет всегда провайдится на уровне ленивого модуля заново, так как Injector создается немутабельным и ленивые модуля не могут ничего добавлять в корневой Injector (эту особенность я не рассказал в этом плейлисте)
      3) Provide лучше чем root injector когда у нас есть много зависимостей у сервиса которые не tree shaking. Например если в Root Module не заимпортирован HttpModule, то чтобы внедрить HttpClient необходимо обязательно иметь по иерархии injectors заимпортированный HttpModule, так как мы это гарантировать не можем, то лучше сделать наш сервис доступным через модуль который уже доваляет необходимые зависимости (HttpModule). Ну или просто в Root добавить HttpModule как обязательный модуль для проекта и не париться
      4) Ну из 3 пункта вытекает, что если мы хотим тонко конфигурировать зависимости в модуль, то нужно делать через provide и внедрять в сборку не в ленивый модуль (например в AppModule).
      В целом root injector это более новый вариант провайдинга, если нет противопоказаний, то лучше его использовать (хотя получается что сервисы чужого модуля принадлежат руту, а не самому модулю, что с точки зрения модульной архитектуры немного странно)
      Надеюсь не запутал

    • @user-san-chous
      @user-san-chous 2 ปีที่แล้ว +1

      @@grommaks не запутали) основную суть я усвоил. Я примерно так и предполагал, только на более примитивном уровне. Спасибо большое)

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

    Не хватает только хорошего микрофона

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

      В след видео громкость стала выше. А плохой микрофон это тихий микрофон? Или :)

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

    Был у меня случай, что я рутово запровайдил сервис и также в компонентах в массиве providers тоже подключил и вот так я настрадал полтора дня пока мне не подсказали)

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

      Пока читал, стало больно 😣

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

    Курс топчик

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

    Супер ...........!!!!!!!

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

    Смотрю ты столько работы сделал, абалдеть. Интересно, есть какой-то толк с монетизации ютуба в данном случае..? Или так, волонтерскую работу сделал.

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

      Сейчас 11$ в месяц :)
      Но ещё много удовольствия от процесса
      Нашёл знакомых и через ютуб и с ними активно дружу, а некоторых даже захантил
      Прямой доход маленький, но мне нравиться сам процесс, как из Харькова заберу аудио аппаратуру (стоит около 1200$) то продолжу записывать видосики :)

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

      @@grommaks ну кто знает😀 Может без нее и лучше🙃, а мы то думаем, чего на многих видео звук тихий такой😅 У котого аудиоапаратура хорошая просто😁

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

      @@MrKrepysh00 в этом видео ещё старый микрофон)

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

      @@grommaks Чекаємо нові відео! Канал хоч малий поки але подаєш доступно і зрозуміло! Дякую!)

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

    и тут довольно тихо

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

      старался сделать громче. В прошлый раз не потянул ползунок с 50% на 100%...буду думатью Спасибо за отзыв...буду тестировать на разных устройствах