👍5👎4🔥1
Оптимизация рендеринга списков в Angular
Директива
Пример:
В этом примере Angular будет использовать
👉 @sWebDev
Директива
*ngFor в Angular используется для отображения списков, но часто приводит к излишним перерисовкам элементов при изменении данных. Это происходит, если Angular не может правильно сопоставить элементы и считает, что нужно перерисовать весь список. Метод trackBy помогает Angular отслеживать изменения и определять, какие элементы нужно обновить.Пример:
@Component({
selector: 'app-optimized-list',
template: `
<ul>
<li *ngFor="let item of items; trackBy: trackByFn">{{ item.name }}</li>
</ul>
`,
})
export class OptimizedListComponent {
items = [
{ id: 1, name: 'Item 1' },
{ id: 2, name: 'Item 2' },
{ id: 3, name: 'Item 3' },
];
trackByFn(index: number, item: any): number {
return item.id; // Уникальный идентификатор
}
}
В этом примере Angular будет использовать
id как ключ, предотвращая перерисовку элементов при изменении содержимого.👉 @sWebDev
👍5
Filesize.js
Filesize.js — библиотека для форматирования размера файлов в удобочитаемый вид, например, "1.2 MB" или "150 KB". Она поддерживает различные системы единиц измерения и может округлять значения до нужного количества знаков после запятой. Используется в интерфейсах для отображения информации о размере загружаемых и скачиваемых файлов.
👉 @sWebDev
Filesize.js — библиотека для форматирования размера файлов в удобочитаемый вид, например, "1.2 MB" или "150 KB". Она поддерживает различные системы единиц измерения и может округлять значения до нужного количества знаков после запятой. Используется в интерфейсах для отображения информации о размере загружаемых и скачиваемых файлов.
👉 @sWebDev
❤5🔥1
Представляем @svg-use
В статье рассказывается о создании и использовании библиотеки
👉 @sWebDev
В статье рассказывается о создании и использовании библиотеки
@svg-use для работы с SVG-иконками в JavaScript-приложениях, таких как React. Основное внимание уделено оптимизации загрузки SVG-файлов с помощью <use href>, а не через инлайновые SVG, что снижает нагрузку на JS-бандлы и DOM. Также рассматриваются плюсы и минусы использования этой техники и перспективы для будущих стандартов веб-разработки.👉 @sWebDev
👍3
Timeago.js
Timeago.js — это библиотека для динамического форматирования времени в стиле "3 минуты назад" или "2 часа назад". Она автоматически обновляет текстовую метку времени на основе текущего времени, что удобно для создания лент новостей, чатов и систем комментариев. Библиотека поддерживает множество языков и является легковесной, что делает её отличным выбором для любого веб-приложения.
👉 @sWebDev
Timeago.js — это библиотека для динамического форматирования времени в стиле "3 минуты назад" или "2 часа назад". Она автоматически обновляет текстовую метку времени на основе текущего времени, что удобно для создания лент новостей, чатов и систем комментариев. Библиотека поддерживает множество языков и является легковесной, что делает её отличным выбором для любого веб-приложения.
👉 @sWebDev
👍10
Использование NgClass в Angular
Как обычно передаются классы в директиву
Если забыли, то вернитесь к посту от07.10.2024 .
👉 @sWebDev
Как обычно передаются классы в директиву
NgClass?Если забыли, то вернитесь к посту от
👉 @sWebDev
👍3
Как обычно передаются классы в директиву NgClass?
Anonymous Quiz
25%
В виде массива с именами классов.
50%
В виде объекта, где ключи — классы, а значения — условия.
15%
В виде строки с именами классов, разделенными запятой.
10%
Через функцию, возвращающую HTML-код.
👍4
Внедрение необязательных зависимостей в Angular
Декоратор
Пример:
В этом примере сервис
👉 @sWebDev
Декоратор
@Optional() в Angular используется для указания того, что зависимость может быть необязательной. Если нужная зависимость отсутствует, Angular не выбросит ошибку, а просто передаст null. Это полезно, когда сервис или зависимость может не всегда быть доступна в контексте компонента.Пример:
import { Component, Optional } from '@angular/core';
import { LoggingService } from './logging.service';
@Component({
selector: 'app-optional-demo',
template: `<p>Декоратор @Optional() пример</p>`
})
export class OptionalDemoComponent {
constructor(@Optional() private loggingService: LoggingService) {
if (this.loggingService) {
this.loggingService.log('Logging service is available');
} else {
console.log('Logging service is not available');
}
}
}
В этом примере сервис
LoggingService внедряется как необязательный. Если он не зарегистрирован, вместо ошибки просто будет выведено сообщение о его отсутствии.👉 @sWebDev
👍5🔥1
Lory
Lory — это легковесная JavaScript-библиотека для создания слайдеров без зависимостей. Она предоставляет минимальный API для создания кастомных слайд-шоу с поддержкой жестов и событий прокрутки.
👉 @sWebDev
Lory — это легковесная JavaScript-библиотека для создания слайдеров без зависимостей. Она предоставляет минимальный API для создания кастомных слайд-шоу с поддержкой жестов и событий прокрутки.
👉 @sWebDev
❤5👍1
Обработка Взаимодействий С Пользователем: Пять Основных Привязок Событий В Angular 18
Статья обсуждает ключевые события привязки в Angular 18, такие как
👉 @sWebDev
Статья обсуждает ключевые события привязки в Angular 18, такие как
click, input, blur, change, и submit. В статье подробно описаны способы их использования для обработки взаимодействий пользователя с формами, полями ввода, кнопками и другими элементами интерфейса. 👉 @sWebDev
👍3