Работа с ChangeDetectorRef.detach()
Для чего используется метод
Забыли? Вернитесь к посту от19.05.2025 .
👉 @sWebDev
Для чего используется метод
ChangeDetectorRef.detach()
?Забыли? Вернитесь к посту от
👉 @sWebDev
Для чего может применяться detach() в шаблоне?
Anonymous Quiz
12%
Динамическая загрузка модуля.
64%
Исключение части шаблона из обновлений при отсутствии изменений.
7%
Переход к OnPush-стратегии.
16%
Удаление компонента из DOM.
Предзагрузка ресурсов с помощью 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
Trianglify
Trianglify — JavaScript-библиотека для генерации фоновых узоров из треугольников с помощью Delaunay-триангуляции. Поддерживает кастомизацию цветов, размеров и плотности. Подойдёт для генерации фоновых изображений, placeholder’ов и декоративных элементов.
👉 @sWebDev
Trianglify — JavaScript-библиотека для генерации фоновых узоров из треугольников с помощью Delaunay-триангуляции. Поддерживает кастомизацию цветов, размеров и плотности. Подойдёт для генерации фоновых изображений, placeholder’ов и декоративных элементов.
👉 @sWebDev
Media is too big
VIEW IN TELEGRAM
Align HTML Elements to 3D Globe
Интерактивная анимация глобуса с настройкой отображения названий на Three.js.
👉 @sWebDev
Интерактивная анимация глобуса с настройкой отображения названий на Three.js.
👉 @sWebDev
Контекст в React: различие между родительскими и владельцами компонентов
В React важно понимать разницу между родительскими и владельцами компонентов, особенно при работе с контекстом. Родитель — это компонент, в котором вложен другой, а владелец — тот, который его рендерит. Это различие влияет на обновления: при изменении состояния перерисовываются компоненты во владении, а не все вложенные. В статье показано, как вынести
👉 @sWebDev
В React важно понимать разницу между родительскими и владельцами компонентов, особенно при работе с контекстом. Родитель — это компонент, в котором вложен другой, а владелец — тот, который его рендерит. Это различие влияет на обновления: при изменении состояния перерисовываются компоненты во владении, а не все вложенные. В статье показано, как вынести
Context.Provider
и состояние в отдельный компонент, чтобы избежать лишних перерисовок и улучшить производительность. Подходит тем, кто хочет глубже разобраться в механизмах обновления и оптимизации React-приложений.👉 @sWebDev
Smartcrop.js
Smartcrop.js — библиотека для умного кадрирования изображений. Автоматически находит визуально важные области и обрезает изображение под заданный размер. Подойдёт для аватаров, превью и адаптивной медиавёрстки.
👉 @sWebDev
Smartcrop.js — библиотека для умного кадрирования изображений. Автоматически находит визуально важные области и обрезает изображение под заданный размер. Подойдёт для аватаров, превью и адаптивной медиавёрстки.
👉 @sWebDev
Назначение метода onDestroy()
Зачем используется метод
Забыли? Вернитесь к посту от26.05.2025 .
👉 @sWebDev
Зачем используется метод
onDestroy()
?Забыли? Вернитесь к посту от
👉 @sWebDev
Зачем используется метод onDestroy()?
Anonymous Quiz
8%
Для создания динамического компонента.
82%
Для регистрации функции, выполняемой при уничтожении экземпляра.
4%
Для внедрения зависимостей вручную.
7%
Для выполнения change detection.
Получение зависимостей из активного маршрута
Свойство
Если
👉 @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
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
RxJS в Angular 16: актуальные практики работы с потоками
В Angular 16 появились Signals, но RxJS остаётся важной частью экосистемы. В статье разбираются подходы, которые помогают сочетать оба инструмента: когда использовать Observables, а когда Signals, как избегать дублирования логики и улучшать читаемость кода. Материал полезен тем, кто хочет привести работу с потоками к более понятной и устойчивой архитектуре.
👉 @sWebDev
В Angular 16 появились Signals, но RxJS остаётся важной частью экосистемы. В статье разбираются подходы, которые помогают сочетать оба инструмента: когда использовать Observables, а когда Signals, как избегать дублирования логики и улучшать читаемость кода. Материал полезен тем, кто хочет привести работу с потоками к более понятной и устойчивой архитектуре.
👉 @sWebDev