Работа с NgZone
Для чего используется метод
Забыли? Вернитесь к посту от16.12.2024 .
👉 @sWebDev
Для чего используется метод
runOutsideAngular()
?Забыли? Вернитесь к посту от
👉 @sWebDev
❤5
Для чего используется метод runOutsideAngular()?
Anonymous Quiz
23%
Для создания новых зон.
6%
Для автоматического обнаружения изменений.
52%
Для оптимизации производительности, избегая обнаружения изменений.
18%
Для выполнения всех операций в зоне Angular.
👍4
Декоратор @SkipSelf() для исключения текущего провайдера из цепочки инъекций
Пример:
👉 @sWebDev
@SkipSelf()
в Angular заставляет DI пропустить текущий провайдер и искать зависимость в родительском инжекторе. Это полезно, если нужно использовать родительский провайдер вместо локального.Пример:
@Injectable({ providedIn: 'root' })
export class ConfigService {
constructor(public config: string) {}
}
@Component({
selector: 'app-parent',
providers: [{ provide: ConfigService, useValue: new ConfigService('Parent Config') }],
template: `<app-child></app-child>`,
})
export class ParentComponent {}
@Component({
selector: 'app-child',
providers: [{ provide: ConfigService, useValue: new ConfigService('Child Config') }],
template: `{{ configService.config }}`,
})
export class ChildComponent {
constructor(@SkipSelf() public configService: ConfigService) {}
}
@SkipSelf()
исключает локальный ConfigService
в ChildComponent
, используя родительский провайдер. 👉 @sWebDev
👍6❤1
Zod
Zod — это библиотека для валидации данных, созданная для использования в JavaScript/TypeScript проектах. Она позволяет легко определять схемы данных и проверять их соответствие на сервере и клиенте.
👉 @sWebDev
Zod — это библиотека для валидации данных, созданная для использования в JavaScript/TypeScript проектах. Она позволяет легко определять схемы данных и проверять их соответствие на сервере и клиенте.
👉 @sWebDev
👍3❤1
Встроенные обработчики событий всё ещё срабатывают при передаче в React через dangerouslySetInnerHTML
В статье рассматривается, что, несмотря на то, что React не выполняет теги
👉 @sWebDev
В статье рассматривается, что, несмотря на то, что React не выполняет теги
<script>
при использовании dangerouslySetInnerHTML, встроенные обработчики событий, такие как onclick, всё же могут выполняться. Автор демонстрирует, как это может привести к потенциальным уязвимостям, и предлагает способы их предотвращения, включая использование функций для очистки HTML-кода от встроенных обработчиков событий перед его вставкой.👉 @sWebDev
👍5
Tabloid.js
Минималистичная библиотека для создания вкладок (tabs) в веб-приложениях. Не требует сложной настройки и предоставляет гибкие инструменты для управления интерфейсами с несколькими секциями.
👉 @sWebDev
Минималистичная библиотека для создания вкладок (tabs) в веб-приложениях. Не требует сложной настройки и предоставляет гибкие инструменты для управления интерфейсами с несколькими секциями.
👉 @sWebDev
🔥4👎2👍1
Использование AbstractControl
Как можно использовать
Забыли? Вернитесь к посту от23.12.2024 .
👉 @sWebDev
Как можно использовать
AbstractControl
?Забыли? Вернитесь к посту от
👉 @sWebDev
👍3
Как можно использовать AbstractControl?
Anonymous Quiz
40%
Для создания динамических валидаторов.
19%
Для обработки событий DOM.
12%
Для управления стилями компонентов.
29%
Для работы с сервисами Angular.
👍3
AnimationTrigger для создания сложных анимаций
В Angular
Пример:
👉 @sWebDev
В Angular
AnimationTrigger
управляет анимациями компонентов, задавая состояния, их изменения и связывая анимации с событиями. Пример:
import { Component } from '@angular/core';
import { trigger, state, style, transition, animate } from '@angular/animations';
@Component({
selector: 'app-animated',
template: `
<div [@fadeInOut]="isVisible ? 'visible' : 'hidden'" class="box"></div>
<button (click)="toggle()">Toggle</button>
`,
animations: [
trigger('fadeInOut', [
state('visible', style({ opacity: 1 })),
state('hidden', style({ opacity: 0 })),
transition('hidden => visible', [animate('500ms ease-in')]),
transition('visible => hidden', [animate('300ms ease-out')]),
]),
],
styles: [`.box { width: 100px; height: 100px; background: lightblue; margin: 10px; }`],
})
export class AnimatedComponent {
isVisible = false;
toggle() {
this.isVisible = !this.isVisible;
}
}
👉 @sWebDev
👍4
Currency.js
Currency.js — это библиотека для работы с денежными значениями. Она разработана для точных вычислений и форматирования валют, избегая проблем с округлением при работе с числами с плавающей точкой в JavaScript.
👉 @sWebDev
Currency.js — это библиотека для работы с денежными значениями. Она разработана для точных вычислений и форматирования валют, избегая проблем с округлением при работе с числами с плавающей точкой в JavaScript.
👉 @sWebDev
👍5👎1🔥1
Почему не стоит использовать внешние отступы в компонентах
В статье рассматривается антипаттерн использования внешних отступов (margin) и внутренних отступов (padding) в компонентах пользовательского интерфейса. Автор утверждает, что добавление margin к внешнему элементу компонента нарушает инкапсуляцию и усложняет повторное использование компонентов. Вместо этого рекомендуется управлять внешними отступами на уровне родительских элементов или контейнеров, оставляя компонент ответственным только за внутренние отступы и оформление.
👉 @sWebDev
В статье рассматривается антипаттерн использования внешних отступов (margin) и внутренних отступов (padding) в компонентах пользовательского интерфейса. Автор утверждает, что добавление margin к внешнему элементу компонента нарушает инкапсуляцию и усложняет повторное использование компонентов. Вместо этого рекомендуется управлять внешними отступами на уровне родительских элементов или контейнеров, оставляя компонент ответственным только за внутренние отступы и оформление.
👉 @sWebDev
👍10