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
This media is not supported in your browser
VIEW IN TELEGRAM
Interactive 3D Birthday Cake Celebration
Интерактивная анимация открытки с тортом на Three.js.
👉 @sWebDev
Интерактивная анимация открытки с тортом на Three.js.
👉 @sWebDev
👍3❤1
AutoComplete.js
AutoComplete.js — JavaScript-библиотека для создания быстрого и адаптивного автозаполнения. Поддерживает динамические и статические источники данных, кастомизацию шаблонов и событий. Подойдёт для форм, поисковых строк и интерфейсов с предсказанием ввода.
👉 @sWebDev
AutoComplete.js — JavaScript-библиотека для создания быстрого и адаптивного автозаполнения. Поддерживает динамические и статические источники данных, кастомизацию шаблонов и событий. Подойдёт для форм, поисковых строк и интерфейсов с предсказанием ввода.
👉 @sWebDev
❤3
Работа с хуком unstable_useCacheRefresh
Что позволяет сделать хук
Забыли? Вернитесь к посту от12.05.2025 .
👉 @sWebDev
Что позволяет сделать хук
unstable_useCacheRefresh(
)?Забыли? Вернитесь к посту от
👉 @sWebDev
❤3
Что позволяет сделать хук unstable_useCacheRefresh()?
Anonymous Quiz
10%
Удалить компонент из DOM.
14%
Переинициализировать хранилище состояния.
3%
Изменить дерево маршрутизации.
73%
Сбросить и перезапросить кэшированные данные.
👍3❤1
Получение шаблонов через ContentChildren и TemplateRef
Параметр
В примере компонент получает все
👉 @sWebDev
Параметр
read: TemplateRef
в декораторе ContentChildren
позволяет получить доступ именно к шаблонам, переданным в компонент через <ng-content>
, что важно, когда требуется отрисовать вложенные ng-template
вручную, а не просто вставить контент. Angular по умолчанию ищет компоненты, но при указании read
можно получить доступ к объектам TemplateRef
.import { Component, ContentChildren, QueryList, TemplateRef, AfterContentInit } from '@angular/core';
@Component({
selector: 'template-container',
template: `<ng-container *ngTemplateOutlet="templates[0]"></ng-container>`,
})
export class TemplateContainerComponent implements AfterContentInit {
@ContentChildren(TemplateRef, { read: TemplateRef }) templates!: QueryList<TemplateRef<any>>;
ngAfterContentInit() {
console.log('Шаблонов передано:', this.templates.length);
}
}
В примере компонент получает все
ng-template
, переданные в него, и может использовать любой шаблон вручную.👉 @sWebDev
👍4
Чувствуете ли вы, что ваш реальный уровень веб-разработки полностью соответствует вашей текущей должности?
👍 – Да, мое внутреннее ощущение совпадает с должностью.
❤️ – Чувствую, что мой реальный уровень ниже, чем моя должность.
🤔 – Чувствую, что мой реальный уровень выше, чем моя должность.
👉 @sWebDev | #юмор
👍 – Да, мое внутреннее ощущение совпадает с должностью.
❤️ – Чувствую, что мой реальный уровень ниже, чем моя должность.
🤔 – Чувствую, что мой реальный уровень выше, чем моя должность.
👉 @sWebDev | #юмор
🤔11👍5❤4
Cuttr.js
Cuttr.js — JavaScript-библиотека для обрезки текста с добавлением многоточия. Позволяет ограничивать вывод по количеству строк или символов. Подойдёт для карточек, превью и адаптивных блоков с переменной длиной контента.
👉 @sWebDev
Cuttr.js — JavaScript-библиотека для обрезки текста с добавлением многоточия. Позволяет ограничивать вывод по количеству строк или символов. Подойдёт для карточек, превью и адаптивных блоков с переменной длиной контента.
👉 @sWebDev
❤6
Современное E2E-тестирование Angular-приложений с помощью Playwright
Unit-тесты проверяют логику, но не отражают, как работает всё приложение целиком. Когда проект растёт, а релизы выходят всё чаще, важно видеть поведение интерфейса глазами пользователя. В статье рассказывается, как использовать Playwright для написания сквозных тестов в Angular и почему этот инструмент помогает выпускать обновления быстрее и увереннее.
👉 @sWebDev
Unit-тесты проверяют логику, но не отражают, как работает всё приложение целиком. Когда проект растёт, а релизы выходят всё чаще, важно видеть поведение интерфейса глазами пользователя. В статье рассказывается, как использовать Playwright для написания сквозных тестов в Angular и почему этот инструмент помогает выпускать обновления быстрее и увереннее.
👉 @sWebDev
❤4
Jump.js
Jump.js — библиотека для плавной прокрутки к элементам на странице. Работает без зависимостей, поддерживает настройку отступов и колбэки. Подойдёт для лендингов, навигации по якорям и одностраничных интерфейсов.
👉 @sWebDev
Jump.js — библиотека для плавной прокрутки к элементам на странице. Работает без зависимостей, поддерживает настройку отступов и колбэки. Подойдёт для лендингов, навигации по якорям и одностраничных интерфейсов.
👉 @sWebDev
❤3
Работа с ChangeDetectorRef.detach()
Для чего используется метод
Забыли? Вернитесь к посту от19.05.2025 .
👉 @sWebDev
Для чего используется метод
ChangeDetectorRef.detach()
?Забыли? Вернитесь к посту от
👉 @sWebDev
❤2
Для чего может применяться detach() в шаблоне?
Anonymous Quiz
12%
Динамическая загрузка модуля.
64%
Исключение части шаблона из обновлений при отсутствии изменений.
7%
Переход к OnPush-стратегии.
17%
Удаление компонента из DOM.
❤3👍1
Предзагрузка ресурсов с помощью ReactDOM.preinit()
Метод
Сценарий: если известно, что модуль или стиль понадобится в первом кадре (например, в
👉 @sWebDev
Метод
ReactDOM.preinit()
регистрирует ресурс (например, скрипт или стили), который React должен начать загружать до начала рендеринга. Такой подход ускоряет время отображения контента за счёт раннего запроса критических файлов. Метод не выполняет загрузку — он сообщает React, что ресурс уже начал загружаться или должен быть загружен, и исключает дублирование при отрисовке.import ReactDOM from 'react-dom';
ReactDOM.preinit('https://example.com/script.js', { as: 'script' });
ReactDOM.preinit('/style.css', { as: 'style', precedence: 'high' });
Сценарий: если известно, что модуль или стиль понадобится в первом кадре (например, в
suspense
-компоненте или при серверной вставке), вызов preinit()
до рендера уменьшает задержку между HTML и визуальным отображением. Поддерживаются типы 'script'
, 'style'
, 'font'
, 'image'
, 'fetch'
, 'worker'
.👉 @sWebDev
❤4👍1