BaguetteBox.js
BaguetteBox.js — JavaScript-библиотека для создания адаптивных галерей с эффектом lightbox. Поддерживает свайпы на мобильных устройствах, навигацию с клавиатуры и легко встраивается в готовую вёрстку.
👉 @sWebDev
BaguetteBox.js — JavaScript-библиотека для создания адаптивных галерей с эффектом lightbox. Поддерживает свайпы на мобильных устройствах, навигацию с клавиатуры и легко встраивается в готовую вёрстку.
👉 @sWebDev
❤2
Поиск зависимости при SkipSelf
Как работает флаг
Забыли? Вернитесь к посту от28.04.2025 .
👉 @sWebDev
Как работает флаг
InjectFlags.SkipSelf при внедрении зависимости?Забыли? Вернитесь к посту от
👉 @sWebDev
👍2
Как работает флаг InjectFlags.SkipSelf при внедрении зависимости?
Anonymous Quiz
15%
Ищет только в текущем инжекторе.
68%
Ищет в родительских инжекторах, пропуская текущий.
5%
Отменяет внедрение зависимости.
12%
Вызывает ошибку при отсутствии провайдера.
👍4
Отключение шаблона от change detection через ViewRef.detach()
В Angular метод
Такой подход позволяет вручную управлять производительностью, особенно при наличии большого количества вложенных представлений, не требующих постоянного обновления.
👉 @sWebDev
В Angular метод
detach() у ViewRef позволяет временно исключить представление из механизма обнаружения изменений. Это значит, что Angular перестаёт отслеживать изменения данных внутри отключённого представления, что полезно при работе с тяжёлыми компонентами или при необходимости заморозить часть UI.ViewRef можно получить, например, при создании представления через ViewContainerRef.createEmbeddedView() или createComponent(). После вызова detach() Angular перестаёт проверять это представление при каждом цикле изменений. Чтобы снова активировать его, вызывается viewRef.reattach().const viewRef = viewContainer.createEmbeddedView(templateRef);
viewRef.detectChanges();
viewRef.detach();
// ...позже
viewRef.reattach();
Такой подход позволяет вручную управлять производительностью, особенно при наличии большого количества вложенных представлений, не требующих постоянного обновления.
👉 @sWebDev
👍4
Animatelo
Animatelo — JavaScript-версия анимаций из Animate.css, работающая без зависимостей. Поддерживает все основные эффекты (вход, выход, внимание и др.) и управляется через классы. Подойдёт для проектов, где нужны CSS-анимации без подключения сторонних стилей.
👉 @sWebDev
Animatelo — JavaScript-версия анимаций из Animate.css, работающая без зависимостей. Поддерживает все основные эффекты (вход, выход, внимание и др.) и управляется через классы. Подойдёт для проектов, где нужны CSS-анимации без подключения сторонних стилей.
👉 @sWebDev
👍2
Аутентификация Firebase в Angular 19
В Angular 19 интеграция с Firebase позволяет реализовать аутентификацию с помощью email/пароля, социальных сетей и других методов. Статья показывает, как настроить Firebase в проекте, использовать AngularFire для подключения и создать сервис для управления сессиями и входом пользователей. Полезно для тех, кто хочет добавить надёжную аутентификацию без лишнего кода.
👉 @sWebDev
В Angular 19 интеграция с Firebase позволяет реализовать аутентификацию с помощью email/пароля, социальных сетей и других методов. Статья показывает, как настроить Firebase в проекте, использовать AngularFire для подключения и создать сервис для управления сессиями и входом пользователей. Полезно для тех, кто хочет добавить надёжную аутентификацию без лишнего кода.
👉 @sWebDev
👍2
NanoJS
NanoJS — сверхмаленькая JavaScript-библиотека для базовых операций с DOM. Предоставляет минимальный набор функций для селекторов, событий и анимации. Подойдёт для проектов, где нужен ручной контроль без jQuery и тяжёлых фреймворков.
👉 @sWebDev
NanoJS — сверхмаленькая JavaScript-библиотека для базовых операций с DOM. Предоставляет минимальный набор функций для селекторов, событий и анимации. Подойдёт для проектов, где нужен ручной контроль без jQuery и тяжёлых фреймворков.
👉 @sWebDev
👍2
Структура аргументов useOptimistic()
Что принимает
Забыли? Вернитесь к посту от05.05.2025 .
👉 @sWebDev
Что принимает
useOptimistic() в качестве начальных данных?Забыли? Вернитесь к посту от
👉 @sWebDev
👍1
Что принимает useOptimistic() в качестве начальных данных?
Anonymous Quiz
23%
Массив функций обратного вызова.
58%
Массив или объект начального состояния.
5%
Строку с URL API.
14%
Компонент React.
❤1👍1
Очистка ресурсов через DestroyRef.onDestroy()
DestroyRef предоставляет метод
Зарегистрированная функция выполняется при уничтожении компонента. Такой подход помогает избежать утечек памяти и использовать лаконичную форму очистки.
👉 @sWebDev
DestroyRef предоставляет метод
onDestroy(), с помощью которого можно зарегистрировать функцию, выполняемую при уничтожении экземпляра. Данный способ подходит для отписки от Observable, остановки таймера или удаления обработчика событий без реализации интерфейса OnDestroy.import { Component, inject, DestroyRef } from '@angular/core';
import { interval, Subscription } from 'rxjs';
@Component({
selector: 'demo-ticker',
template: `<p>{{ tick }}</p>`,
})
export class TickerComponent {
tick = 0;
private sub: Subscription;
constructor() {
const destroyRef = inject(DestroyRef);
this.sub = interval(1000).subscribe(v => (this.tick = v));
destroyRef.onDestroy(() => {
this.sub.unsubscribe();
console.log('Подписка завершена');
});
}
}Зарегистрированная функция выполняется при уничтожении компонента. Такой подход помогает избежать утечек памяти и использовать лаконичную форму очистки.
👉 @sWebDev
👍4👎1
Yall.js
Yall.js — легковесная библиотека для ленивой загрузки изображений и видео с использованием Intersection Observer. Работает без зависимостей и подходит для оптимизации скорости загрузки страниц в проектах с большим количеством медиа.
👉 @sWebDev
Yall.js — легковесная библиотека для ленивой загрузки изображений и видео с использованием Intersection Observer. Работает без зависимостей и подходит для оптимизации скорости загрузки страниц в проектах с большим количеством медиа.
👉 @sWebDev
👍6
Гексагональная архитектура с NgRx Signal Store в Angular
Статья объясняет, как использовать гексагональную архитектуру при работе с NgRx Signal Store и Angular Signals. Данный подход позволяет изолировать бизнес-логику от инфраструктурных деталей, повысить модульность и упростить тестирование.
👉 @sWebDev
Статья объясняет, как использовать гексагональную архитектуру при работе с NgRx Signal Store и Angular Signals. Данный подход позволяет изолировать бизнес-логику от инфраструктурных деталей, повысить модульность и упростить тестирование.
👉 @sWebDev
👍2