Angular async pipe. RxJS на новом уровне при таком подходе

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ค. 2024
  • RxJS великолепный инструмент, дающий гибкость в решении не простых задач, но этот инструмент требует много писать подписок и отписок на Observable объекты. Используя ASYNC PIPE в Angular можно понять, что это легко автоматизировать
    В этом видео мы рассмотрим самые частые паттерны использования пайпы async и углубимся в тонкости работы с ним
    ==============================
    Код готового урока:
    github.com/MaksymGrom/angular...
    ==============================
    Инструкция по установке angular проекта:
    Вариант 1:
    Пройдите плейлист: • Как работает WEB. Мест...
    Вариант 2:
    github.com/MaksymGrom/angular...
    Загрузите зависимости (npm install)
    Можно запускать проект (ng serve)
    ==============================
    Выбор редактора код это дело каждого, но в этом плейлисте я использую webstorm. Как настроить один из популярнейших редакторов ниже:
    VS Code: • VS Code extensions для...
    WebStorm: • WebStorm работа с angu...
    Архитектурные елементы Angular • Angular архитектурные ...
    Основы RxJS • RxJs Теория: Observabl...
    Подробнее об OnPush • ngOnChanges vs ngDoChe...
    Немного старого видео об иммутабельности • Immutable. Неизменяемо...
    Не забываем что SQL важен независимо чем планируешь заниматься при веб разработке, даже если планируешь быть менеджером проектов.
    Курс по SQL можно найти по ссылке: • Что такое SQL? Как раб...
    Спасибо что продолжаете смотреть меня и радовать комментариями.
    ---- Соц сети
    Телеграм, где можно узнать о новых видео и получать доп контент
    t.me/webDevGromMaxChannel
    P.S. В youtube я отвечаю быстрее чем в telegram, буду рад комментам в youtube
    ----
    Чтобы поддержать канал
    1) Можно поставить лайк (или дизлайк, если не понравилось видео)
    2) Оставить комментарий более 5 слов
    3) Досмотреть видео до конца (так удержание будет выше и мне это поможет в продвижении)
    4) Оставить отзыв в комментариях, что можно улучшить в видео, чтобы не хотелось его закрывать
    5) Можно стать участником моего канала на платной основе / @grommaks
    #pipe #angular #grommax
    Материально поддержать канал можно следующим способом
    1) Перевод на карту send.monobank.ua/7oqmsFg3Y
    2) Пройти опрос, чтобы помочь выбрать подходящие варианты поддержки
    forms.gle/ZbFCKJSpDNYp4AMC6
    Оглавление
    00:00 - Введение
    00:39 - Настройка проекта
    01:21 - Почему RxJS не нравится большинству
    02:19 - Promise | Observable с async пайпов
    02:54 - Описание класса пайпы
    03:24 - Пайпа вернет null в первый раз
    03:57 - Pipe async + *ngIf
    06:54 - Как работать с данными в TS не подписываясь
    10:14 - Pipe async + *ngFor
    11:45 - Smart & Dumb компоненты по признаку пайпы async
    16:03 - Как бороться с null в пайпе async
    19:40 - Краткий гайд

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

  • @user-jo7jq3vq5b
    @user-jo7jq3vq5b ปีที่แล้ว +1

    Сколько я намучился передавая стримы в дамп-компоненты и проверя там null. Предложенное решение просто восхитос.

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

    Очень улучшилась подача уроков! Было тяжело смотреть предыдущие видео, но здесь все прям по делу и с отсылками к другим урокам 👍🏾

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

    Очень рад что у вас все хорошо, и появилась возможность и желание вернуться к каналу. Спасибо за ваш труд

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

    Дякую, чудова подача матеріалу, все легко та зрозуміло) З нетерпінням чекаємо нові відео)

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

    Интересный подход, на верху логика, ниже верстка и события. Спасибо за урок.

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

    Спасибо за то, что делишься своим опытом. Наверное, в ютубе только два канала, которые посвящены глубокому изучению Ангуляра, и все они созданы украинцами. Вы - чудесные :)

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

      А какой второй, не поделишься?))

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

      @@nicalf9329 decoded frontend

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

      @@ilnurryazhapov9377 именно)

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

    Супер! Очень рад что ты продолжил записывать видео-уроки🙂👍

  • @user-gb8gh5hz3t
    @user-gb8gh5hz3t 2 ปีที่แล้ว +2

    Спасибо большое.^.^, Одно небольшое негодование, нужно боооольше такого годного контента))

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

    Видео просто "класс"! Помогло структурировать знания, которые сейчас необходимо применить. Огромное спасибо!
    angular pipe async ангуляр пайп асинк оптимизация стратегия онпуш changeDetection onPush

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

    С возвращением!

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

    все что плохое с вами происходит - это происходит от незнания))
    фраза прям через все сферы деятельности и года в жизни))
    жирнючий лайкос)))

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

    Спасибо тебе большое, я долго искал хорошие уроки по ANgular && RxJs

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

    с возвращением и огромное спасибо за новые видео! лучи поддержки тебе!

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

    Как всегда великолепно 👍

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

    Дякую, все доступно і зрозуміло

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

      Дякую за відгук)

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

    очень ждал возвращения! Если бы не война, уже бы благодаря этим урокам мидлом был би... Главное, что все хорошо у Вас. А то вроде где-то помниться, что Вы с Харькова.

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

      Угу, с Харькова
      Пока ни одну из моих квартир не уничтожили, но в мой дом уже есть три попадания снарядами
      В родительский дом попали в крышу над их квартирой, уже залатали соседи
      Так что не жалею что выехал с Харькова, но не знаю будет ли куда возвращаться…

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

      Привет и спасибо что вернулся. Я уже переживал, что что то могло случится с тобой. Как у тебя получается что то создавать? У нас фокус уже как 60 дней сместился, тяжело работать. Мотивации ноль. Твои видео заряжают. :)

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

      @@Wunderwaffe2333 очень тяжело получается, но сильно нравится это делать, надеюсь будут ещё видео и начну плейлист по директивам

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

    THANK YOU SIR

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

    Великолепно!

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

    Спасибо !

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

    Спасибо за такой ролик, всё доступно и понятно) В сравнении с предыдущими роликами(которые были год назад) качество улучшилось!) Максим, а можно ли вас попросить перезаписать курс по NGRX, я новичок и мне он тяжеловато даётся, ваш пересмотрел, понятней стало но не знаю, может я глупый)

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

      Спасибо за отзыв
      Пока ближайшим временем не планируется перезапись курса по ngrx

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

      NGRX очень сложный для новичков, прям очень, так что тут разве что несколько заходов на старые плейлисты нужно сделать
      Короткий ответ, не глупы, пытайся ещё)

  • @user-glory-of-ukraine
    @user-glory-of-ukraine 2 ปีที่แล้ว +2

    Друже, вітаю з поверненням!!!

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

      Дякую

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

    Привет всем
    Появилась возможность поддержать платной подпиской
    th-cam.com/channels/lDDVLu0Cj_o9Y5D2ilCtdQ.htmljoin

  • @vitaliit.7588
    @vitaliit.7588 2 ปีที่แล้ว +2

    И снова, Максим, спасибо за твой труд👍
    Скажи, а как тригернуть users$ | async если данные обновились на сервере после удаления/добавления юзера?
    Например, мы определим users$ в конструкторе компонента и подпишемся через async в шаблоне, потом дергнув метод удаления, отправляем запрос на сервис. После чего получив в ответ новый массив, нужно обновить users$

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

      Спасибо за отзыв)
      async пайпа переподписывается автоматически, значит нужно просто обновить свойство user$
      Тут будет побочный эффект, между запросами вернётся null, его нужно обработать повесив индикатор загрузки
      Можно более сложные варианты разработать с использованием rxjs, но тут можно целый плейлист снять на несколько сотен роликов как можно использовать rxjs в разных сценариях

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

      Триггерить users не нужно, нужно повесить users$ на стримы удаления/добавления юзера и они будут сами обновляться. как-то так users$ = merge(
      this.allUsers$,
      this.createdUser$,
      this.deletedUser$,
      this.updatedUser$
      ).pipe(
      scan(
      (users, user) => this.modifyUserArray(users, user),
      [] as E[]
      )
      );

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

    Крутые уроки!! Спасибо)) а нет желания реализовать material table? Тема микро шаблонов достаточно интересна

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

      Подобный подход планируется в видео по директивам, когда (если) я до них доберусь

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

      @@grommaks понимаю, тяжелые времена сейчас(( сам с ирпеня

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

      @@pes_Duk68 ух, больно слышать про Ирпень…коллега от туда

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

    Кстати в Харьков вернулся уже или еще нет?

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

      Нет, не вернулся, там стало все гораздо хуже, но жильё пока цело, хоть и есть три попадания в дом

  • @user-hs9uf8fg5k
    @user-hs9uf8fg5k 2 ปีที่แล้ว +2

    смысла в таких компонентах нет...

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

      Вроде как в видео сказал о декомпозиции
      Ещё распределение логики
      Разумеется что это не единственный верный подход который подходит абсолютно всем проектам и абсолютно всем командам

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

    Спасибо!