Получение зависимостей из активного маршрута
Свойство
Если
👉 @sWebDev
Свойство
injector
у RouterOutlet
позволяет напрямую получить зависимости, предоставленные активным маршрутом. Это полезно при работе с динамическими компонентами, вложенными маршрутами и Standalone-архитектурой, где требуется доступ к провайдерам из маршрута без дополнительных обёрток.import { Component, ViewChild } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { MyService } from './my.service';
@Component({
selector: 'app-shell',
template: `<router-outlet #outlet="outlet"></router-outlet>`,
})
export class ShellComponent {
@ViewChild('outlet', { static: true }) outlet!: RouterOutlet;
ngAfterViewInit() {
const myService = this.outlet.injector.get(MyService);
myService.log();
}
}
Если
MyService
предоставлен только в маршруте, то доступ к нему возможен только через RouterOutlet.injector
. Это исключает необходимость передачи данных через @Input или общие сервисы.👉 @sWebDev
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
RoughViz.js
RoughViz.js — библиотека для визуализации данных в «рисованном» стиле, основанная на d3 и Rough.js. Поддерживает диаграммы, круговые графики и гистограммы. Подойдёт для инфографики, презентаций и нестандартных визуальных интерфейсов.
👉 @sWebDev
RoughViz.js — библиотека для визуализации данных в «рисованном» стиле, основанная на d3 и Rough.js. Поддерживает диаграммы, круговые графики и гистограммы. Подойдёт для инфографики, презентаций и нестандартных визуальных интерфейсов.
👉 @sWebDev
👍6🤔2
RxJS в Angular 16: актуальные практики работы с потоками
В Angular 16 появились Signals, но RxJS остаётся важной частью экосистемы. В статье разбираются подходы, которые помогают сочетать оба инструмента: когда использовать Observables, а когда Signals, как избегать дублирования логики и улучшать читаемость кода. Материал полезен тем, кто хочет привести работу с потоками к более понятной и устойчивой архитектуре.
👉 @sWebDev
В Angular 16 появились Signals, но RxJS остаётся важной частью экосистемы. В статье разбираются подходы, которые помогают сочетать оба инструмента: когда использовать Observables, а когда Signals, как избегать дублирования логики и улучшать читаемость кода. Материал полезен тем, кто хочет привести работу с потоками к более понятной и устойчивой архитектуре.
👉 @sWebDev
❤4
Glfx.js
Glfx.js — JavaScript-библиотека для применения визуальных эффектов к изображениям с использованием WebGL. Включает размытие, контраст, кривизну, пикселизацию и другие фильтры. Подойдёт для фоторедакторов, медиаплатформ и визуальных экспериментов.
👉 @sWebDev
Glfx.js — JavaScript-библиотека для применения визуальных эффектов к изображениям с использованием WebGL. Включает размытие, контраст, кривизну, пикселизацию и другие фильтры. Подойдёт для фоторедакторов, медиаплатформ и визуальных экспериментов.
👉 @sWebDev
❤3
Результат выборки
Что будет содержать
Забыли? Вернитесь к посту от02.06.2025 .
👉 @sWebDev
Что будет содержать
QueryList
, если использовать ContentChildren
с read: TemplateRef
?Забыли? Вернитесь к посту от
👉 @sWebDev
❤3
Что будет содержать QueryList, если использовать ContentChildren с read: TemplateRef?
Anonymous Quiz
19%
Ссылки на директивы.
25%
Экземпляры компонентов.
9%
Строковые значения.
47%
Объекты TemplateRef.
👍3❤1
Подписка на внешний стор с выборкой
Хук
При вызове хука можно передать
👉 @sWebDev
Хук
useSyncExternalStoreWithSelector()
используется для подписки на внешний стор с избирательным обновлением компонента. Он расширяет useSyncExternalStore()
за счёт функции выбора и сравнения: обновление вызывается только при изменении выбранного значения. Это снижает количество перерендеров при работе с глобальным состоянием.import { useSyncExternalStoreWithSelector } from 'react';
function useCustomStore(selector, isEqual) {
return useSyncExternalStoreWithSelector(
subscribe, // подписка на стор
getSnapshot, // получение полного состояния
getSnapshot, // серверный snapshot
selector, // выбор нужного значения
isEqual // функция сравнения
);
}
При вызове хука можно передать
selector
, чтобы отслеживать только часть состояния, и isEqual
, чтобы предотвратить обновление при эквивалентных значениях. Может пригодиться при подписке на сложные сторы, например, Redux без лишних обёрток.👉 @sWebDev
👍5👎1
Media is too big
VIEW IN TELEGRAM
Как вы тестируете код, сгенерированный нейронкой?
👍 – Пускаю на прод — если выживет, значит норм.
❤️ – Смотрю в код и надеюсь на чудо.
🤔 – Проверка? А где кнопка “Deploy”?
👉 @sWebDev | #юмор
👍 – Пускаю на прод — если выживет, значит норм.
❤️ – Смотрю в код и надеюсь на чудо.
🤔 – Проверка? А где кнопка “Deploy”?
👉 @sWebDev | #юмор
👍8❤1
iNoBounce
iNoBounce — библиотека для отключения «резинового» скролла на мобильных устройствах iOS. Решает проблему неконтролируемой прокрутки за пределы контента.
👉 @sWebDev
iNoBounce — библиотека для отключения «резинового» скролла на мобильных устройствах iOS. Решает проблему неконтролируемой прокрутки за пределы контента.
👉 @sWebDev
❤3
Основы тестирования во Vue с использованием Vitest
В статье объясняется, как писать модульные тесты во Vue-проектах с использованием Vitest — современного и быстрого инструмента, совместимого с Vite. Разбираются базовые принципы, настройка окружения и примеры тестов для компонентов. Полезно тем, кто только осваивает тестирование во Vue и хочет понять, с чего начать.
👉 @sWebDev
В статье объясняется, как писать модульные тесты во Vue-проектах с использованием Vitest — современного и быстрого инструмента, совместимого с Vite. Разбираются базовые принципы, настройка окружения и примеры тестов для компонентов. Полезно тем, кто только осваивает тестирование во Vue и хочет понять, с чего начать.
👉 @sWebDev
❤2👍1
Как frontend-разработчику получить оффер в Bigtech?
Ты уже давно в профессии, но до сих пор в компании, которая тебя не ценит. Зарплата не растёт, задачи скучные.
Хочешь сменить работу, но технические собеседования всё сложнее, а на отклики на hh только отказы и тестовые?
При этом вокруг кто-то постоянно получает офферы в Яндекс или VK, Т-Банк. Хочется стабильности, интересных задач и наконец-то попасть в сильную команду...
На своем канале:
👉публикую видео с решением задач, которые прямо сейчас дают крупные компании на собеседованиях
👉даю примеры по прохождению собеседований
👉разбираю резюме и докручиваю резюме подписчиков
👉И просто создаю дружелюбное, комфортное сообщество, где коллеги всегда готовы подсказать и поддержать вас
🎁В закрепе тебя ждёт подборка из 60 задач, которые сейчас дают на собеседованиях Яндекс, Т-Банк и другие крупные IT игроки.
Подписывайся и получай максимум пользы, а нас уже больше 2000 🤓: https://www.tgoop.com/+WcZ7Ag-YMPFhZWQ6
Реклама, ИП Галактионов Тихон Витальевич, инн: 771618975809, erid: 2W5zFJXMmKW
Ты уже давно в профессии, но до сих пор в компании, которая тебя не ценит. Зарплата не растёт, задачи скучные.
Хочешь сменить работу, но технические собеседования всё сложнее, а на отклики на hh только отказы и тестовые?
При этом вокруг кто-то постоянно получает офферы в Яндекс или VK, Т-Банк. Хочется стабильности, интересных задач и наконец-то попасть в сильную команду...
Меня зовут Тихон, привет! Я — действующий Frontend-разработчик и ментор. Помогаю устроиться на хорошие позиции в Bigtech и сопровождаю на испытательном сроке.
На своем канале:
👉публикую видео с решением задач, которые прямо сейчас дают крупные компании на собеседованиях
👉даю примеры по прохождению собеседований
👉разбираю резюме и докручиваю резюме подписчиков
👉И просто создаю дружелюбное, комфортное сообщество, где коллеги всегда готовы подсказать и поддержать вас
🎁В закрепе тебя ждёт подборка из 60 задач, которые сейчас дают на собеседованиях Яндекс, Т-Банк и другие крупные IT игроки.
Подписывайся и получай максимум пользы, а нас уже больше 2000 🤓: https://www.tgoop.com/+WcZ7Ag-YMPFhZWQ6
Реклама, ИП Галактионов Тихон Витальевич, инн: 771618975809, erid: 2W5zFJXMmKW
👎2
SimplyCountdown.js
SimplyCountdown.js — JavaScript-библиотека для создания простого таймера обратного отсчёта. Не требует зависимостей, настраивается через HTML-атрибуты или JavaScript-объекты. Подойдёт для лендингов, акций, мероприятий и виджетов с ограниченным временем.
👉 @sWebDev
SimplyCountdown.js — JavaScript-библиотека для создания простого таймера обратного отсчёта. Не требует зависимостей, настраивается через HTML-атрибуты или JavaScript-объекты. Подойдёт для лендингов, акций, мероприятий и виджетов с ограниченным временем.
👉 @sWebDev
❤4