Angular Directive. Аналог Mat Table. Структурная директива для передачи шаблона

  Рет қаралды 1,960

Максим Гром

Максим Гром

Күн бұрын

В этом видео раскрыт вариант продвинутого использования структурных директив для передачи ng-template с параметрами в компонент.
Директива может быть транспортым элементом для связи параметов и ссылки на шаблон и извлечении директив через ViewChildren. В этом видео все это показано наглядно
В продолжении будет рассмотрен более сложный вариант этого паттерна
==============================
Код готового урока:
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
#directives #angular #grommax
Материально поддержать канал можно следующим способом
1) Перевод на карту send.monobank.ua/7oqmsFg3Y
2) Пройти опрос, чтобы помочь выбрать подходящие варианты поддержки
forms.gle/ZbFCKJSpDNYp4AMC6
Оглавление
00:00 - Введение
00:31 - Настройка проекта
00:45 - Создание table component
04:23 - Подготовка данных для таблицы
05:20 - table header directive
06:56 - Переопределение колонки ID
07:27 - table component ContentChildren
10:35 - Использование структурной директивы
12:35 - Краткий гайд

Пікірлер: 29
@user-rb3sw3ku6t
@user-rb3sw3ku6t 7 ай бұрын
Ух! У меня мозги едва в узел не завязались, но всё же понял о чём шла речь. Спасибо за видео!!!
@oleksandrvoron_ko580
@oleksandrvoron_ko580 11 ай бұрын
Макс, дякую за цікаве відео!
@user-sf7hl7fn8m
@user-sf7hl7fn8m 10 ай бұрын
God bless you!!!
@user-ig1ui6hj9i
@user-ig1ui6hj9i 11 ай бұрын
Спасибо за классные видео!
@pes_Duk68
@pes_Duk68 11 ай бұрын
Спасибо, ждал это видео!)
@zatoprosto103
@zatoprosto103 11 ай бұрын
Спасибо за видео!
@omgSkywalkeRwtf
@omgSkywalkeRwtf 11 ай бұрын
Есть идея модернизации =) - поиск шаблонов делать через пайп для оптимизации (кажется вызов методов в шаблоне плохая практика) - для всех ngFor обязателен trackBy, иначе на больших данных будут проблемы
@grommaks
@grommaks 11 ай бұрын
Отличные идеи💡
@derek_james
@derek_james 11 ай бұрын
Топ контент!!!❤❤❤
@andreifilimonchyk8318
@andreifilimonchyk8318 11 ай бұрын
Пушка!))))
@user-zo6mv9tc8o
@user-zo6mv9tc8o 11 ай бұрын
Сделай про tab такое же видео оч интересно!
@grommaks
@grommaks 11 ай бұрын
Оставлю как домашняя работа :)
@user-san-chous
@user-san-chous 11 ай бұрын
Если для цели просто изменить текст в названии колонки, то подход с директивой выглядит избыточным как-то. Можно было бы сделать это проще лишь за счет инпутов. Но если учитывать, что это темплейт и можно не просто заменить название, а использовать что угодно - уникальный html, иконку, что-то динамическое методом создавать и т.д., то тогда выглядит очень полезно.
@grommaks
@grommaks 11 ай бұрын
А можно сделать комбинацию инпута и передачи шаблона :) Не нужно ограничиваться чем то одним, все зависит от задачи
@AlexAlex-mq6sg
@AlexAlex-mq6sg 11 ай бұрын
Вроде тоже самое можно также сделать через ngcontent, что-то подобное пару лет назад делал
@grommaks
@grommaks 11 ай бұрын
ng-content передает готовую верстку, а это передача шаблона
@victorfilippov1950
@victorfilippov1950 11 ай бұрын
Здравствуйте, Максим. Считаю, что запись {[key: string]: any} менее читаема, чем Record. Есть ли какие-то подводные камни использования этих двух типов?
@grommaks
@grommaks 11 ай бұрын
Действительно, Record хорошая замена Я мало знаком с этим типом данных, то что прочитал, что хороший заменитель такой записи и можно указывать ключи в виде чисел Не знаю будет ли хорошо вести себя с any, но не думаю что будут проблемы Спасибо за дополнение, может воспользуюсь в следующих уроках
@victorfilippov1950
@victorfilippov1950 11 ай бұрын
@@grommaks Не за что! Я тоже раньше пользовался вашим способом записи. Но настал момент, когда в качестве ключей у меня появились перечисления из Enum. Именно тогда я задался вопросами оптимизаций типов. { [key in keyof typeof MyEnum]: any} превреатились в Record. Запись сократилась. С учетом того, что мы еще можем оборачивать все наши типы в Partial, Required, NotNull и тд. Такой способ сильно помог повысить читаемость
@grommaks
@grommaks 11 ай бұрын
@@victorfilippov1950 отличное дополнение :) спасибо еще раз
@LimitlessPlayer
@LimitlessPlayer 11 ай бұрын
Насколько я знаю, функцию в шаблоне лучше не использовать. Может есть вариант переписать на пайпу?
@grommaks
@grommaks 11 ай бұрын
Функции в шаблоне будут вызываться часто, все верно Чистая пайпа могла бы помочь, только я не уверен что content children создает новый объект каждый раз. при статических шаблонах пайпа решает проблему, но при динамических нужен другой вариант В этом видео я не учитывал этой оптимизации но замечание валидное, мне нравится 👍 Спасибо за отзыв
@bukanaka
@bukanaka 11 ай бұрын
Функцию лучше не использовать, если там сложные вычисления, которые явно будут замедлять отрисовку шаблона. И геттеры являются теми же функциями, поэтому не стоит бояться везде функций, если они минимальные.
@grommaks
@grommaks 11 ай бұрын
@@bukanaka да, оптимизация нужна по мере надобности. Преждевременно может быть лишним
@bukanaka
@bukanaka 11 ай бұрын
@@grommaks согласен🤝
@user-ve8ux5yy7y
@user-ve8ux5yy7y 11 ай бұрын
Нужно пересмотреть курс сначала. Что-то потерял нить. Видимо мозги совсем забиты реактом. Автор, сколько ещё видео по теме будет и какая структура всего плейлиста? Хочу подойти системно к просмотру, когда начну изучать Ангуляр на постоянной основе
@grommaks
@grommaks 11 ай бұрын
По ссылке отсортированы все плейлисты этого курса, удачи в обучении youtube.com/@grommaks
@grommaks
@grommaks 11 ай бұрын
Еще одно видео в этом плейлисте и мы на середине курса только
@user-ve8ux5yy7y
@user-ve8ux5yy7y 11 ай бұрын
@@grommaks Super! Thanks
бесит старшая сестра!? #роблокс #анимация #мем
00:58
КРУТОЙ ПАПА на
Рет қаралды 3,6 МЛН
Happy 4th of July 😂
00:12
Pink Shirt Girl
Рет қаралды 25 МЛН
LOVE LETTER - POPPY PLAYTIME CHAPTER 3 | GH'S ANIMATION
00:15
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 1,1 М.
Why didn't the Angular team just use RxJS instead of Signals?
8:15
Joshua Morony
Рет қаралды 88 М.
бесит старшая сестра!? #роблокс #анимация #мем
00:58
КРУТОЙ ПАПА на
Рет қаралды 3,6 МЛН