Управление зонами через NgZone.runOutsideAngular()
Метод
Пример:
В данном примере Angular не отслеживает события
👉 @sWebDev
Метод
runOutsideAngular()
из Angular позволяет выполнять код за пределами зоны Angular. Это предотвращает избыточное обнаружение изменений, ускоряя приложение в сценариях, где Angular не должен отслеживать изменения. Такой подход полезен для обработки скроллинга, таймеров или анимаций.Пример:
import { Component, NgZone } from '@angular/core';
@Component({
selector: 'app-optimization-example',
template: `<p>Скорость приложения оптимизирована!</p>`,
})
export class OptimizationExampleComponent {
constructor(private ngZone: NgZone) {
this.ngZone.runOutsideAngular(() => {
window.addEventListener('scroll', this.handleScroll);
});
}
handleScroll = () => {
console.log('Событие скроллинга обработано!');
};
}
В данном примере Angular не отслеживает события
scroll
, что снижает нагрузку на систему. Однако важно помнить, что для обновления интерфейса нужно вернуться в зону Angular с помощью NgZone.run()
.👉 @sWebDev
👍5
Htmx
Htmx — это библиотека для добавления интерактивности через HTML-атрибуты. Она помогает управлять асинхронными запросами, обновлять части страницы и обрабатывать события, минимизируя использование JavaScript.
👉 @sWebDev
Htmx — это библиотека для добавления интерактивности через HTML-атрибуты. Она помогает управлять асинхронными запросами, обновлять части страницы и обрабатывать события, минимизируя использование JavaScript.
👉 @sWebDev
👍4👎1
UseContextSelector: ускоренный аналог useContext для React
Статья описывает хук
👉 @sWebDev
Статья описывает хук
useContextSelector
, который является улучшенной версией useContext
в React. Автор рассказывает, как этот хук позволяет оптимизировать производительность, минимизируя перерисовки компонентов, и предоставляет примеры его применения в больших проектах.👉 @sWebDev
👍4👎2
Shifty
Shifty — это микробиблиотека для создания анимаций с точным контролем ключевых кадров. Она предоставляет интерфейс для управления анимационными свойствами через JavaScript, не завися от DOM. Полезна для кастомных анимаций, таких как переходы между сложными состояниями.
👉 @sWebDev
Shifty — это микробиблиотека для создания анимаций с точным контролем ключевых кадров. Она предоставляет интерфейс для управления анимационными свойствами через JavaScript, не завися от DOM. Полезна для кастомных анимаций, таких как переходы между сложными состояниями.
👉 @sWebDev
👍4
Работа с unstable_batchedUpdates
Для чего используется метод
Если забыли, то вернитесь к посту от02.12.2024 .
👉 @sWebDev
Для чего используется метод
unstable_batchedUpdates
?Если забыли, то вернитесь к посту от
👉 @sWebDev
👍3
Для чего используется метод unstable_batchedUpdates?
Anonymous Quiz
6%
Для улучшения сортировки массивов в React.
11%
Для автоматического создания компонентов.
16%
Для оптимизации загрузки данных.
68%
Для объединения обновлений состояния в один ререндер.
👍3
Реактивные формы с AbstractControl в Angular
Пример:
В этом примере валидатор сравнивает значения
👉 @sWebDev
AbstractControl
— это базовый класс для всех контролов. Он предоставляет методы и свойства, которые позволяют управлять состоянием, валидацией и зависимостями полей формы.Пример:
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.form = this.fb.group({
password: ['', Validators.required],
confirmPassword: ['']
});
this.form.get('confirmPassword')?.setValidators([
this.matchPasswordsValidator(this.form.get('password'))
]);
}
matchPasswordsValidator(passwordControl: AbstractControl | null) {
return (confirmPasswordControl: AbstractControl) => {
const password = passwordControl?.value;
const confirmPassword = confirmPasswordControl.value;
return password === confirmPassword ? null : { passwordMismatch: true };
};
}
В этом примере валидатор сравнивает значения
password
и confirmPassword
, автоматически реагируя на изменения первого поля. 👉 @sWebDev
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Работаете ли вы быстрее над проектом в команде?
👍 - Да, работать вместе отлично.
❤️ - Нет, это замедляет процесс.
🤔 - Насчет скорости не знаю, зато не скучно!
👉 @sWebDev
👍 - Да, работать вместе отлично.
❤️ - Нет, это замедляет процесс.
🤔 - Насчет скорости не знаю, зато не скучно!
👉 @sWebDev
❤8🔥5🤔5👍2
Wow.js
Wow.js — это JavaScript-библиотека, которая добавляет анимации элементам страницы при прокрутке. Она автоматически выявляет элементы, которые попадают в видимую область окна браузера, и применяет к ним CSS-анимации.
👉 @sWebDev
Wow.js — это JavaScript-библиотека, которая добавляет анимации элементам страницы при прокрутке. Она автоматически выявляет элементы, которые попадают в видимую область окна браузера, и применяет к ним CSS-анимации.
👉 @sWebDev
❤5
Как настроить автофокус с помощью React Hooks
В статье объясняется, как с помощью React Hooks легко добавить автофокус на элементы формы. На простых примерах показано, как использовать
👉 @sWebDev
В статье объясняется, как с помощью React Hooks легко добавить автофокус на элементы формы. На простых примерах показано, как использовать
useRef
, чтобы сделать интерфейс удобнее и отзывчивее.👉 @sWebDev
👍3
Detect.js
Detect.js — библиотека для определения типа устройства, браузера, версии операционной системы и других характеристик клиента. Это полезно для адаптации интерфейса под разные платформы или для отображения специфического контента.
👉 @sWebDev
Detect.js — библиотека для определения типа устройства, браузера, версии операционной системы и других характеристик клиента. Это полезно для адаптации интерфейса под разные платформы или для отображения специфического контента.
👉 @sWebDev
👍6👎1
Назначение AnimationBuilder
Для чего используется сервис
Если забыли, то вернитесь к посту от09.12.2024 .
👉 @sWebDev
Для чего используется сервис
AnimationBuilder
в Angular?Если забыли, то вернитесь к посту от
👉 @sWebDev
👍3