Txiki.js
Txiki.js — это небольшой и минималистичный JavaScript-рантайм, созданный для выполнения современных стандартов ECMAScript. Основная цель проекта — предложить лёгкий и быстрый инструмент для запуска JavaScript-кода, без необходимости использования громоздких движков вроде Node.js.
👉 @sWebDev
Txiki.js — это небольшой и минималистичный JavaScript-рантайм, созданный для выполнения современных стандартов ECMAScript. Основная цель проекта — предложить лёгкий и быстрый инструмент для запуска JavaScript-кода, без необходимости использования громоздких движков вроде Node.js.
👉 @sWebDev
👍3
Работа с методом Injector.create()
Какую задачу решает метод
Забыли? Вернитесь к посту от30.12.2024 .
👉 @sWebDev
Какую задачу решает метод
Injector.create()
в Angular?Забыли? Вернитесь к посту от
👉 @sWebDev
👍3
Какую задачу решает метод Injector.create() в Angular?
Anonymous Quiz
38%
Создает новый инжектор, который наследует зависимости от корневого.
46%
Создает независимый инжектор с заданными провайдерами.
9%
Автоматически инжектирует зависимости в компонент при его создании.
6%
Регистрирует зависимости глобально для всего приложения.
👍4
Ручное обновление дерева компонентов
В Angular метод
Пример:
Без вызова
👉 @sWebDev
В Angular метод
ApplicationRef.tick()
используется для запуска цикла обнаружения изменений вручную. Это полезно, когда изменения происходят вне зоны Angular, например, в callback-функциях или таймерах. Пример:
typescript
import { ApplicationRef, Component } from '@angular/core';
@Component({
selector: 'app-manual-tick',
template: `<p>{{ message }}</p>`,
})
export class ManualTickComponent {
message = 'Ожидание...';
constructor(private appRef: ApplicationRef) {
setTimeout(() => {
this.message = 'Изменение произошло';
this.appRef.tick(); // Обновляем вручную
}, 3000);
}
}
Без вызова
tick()
изменения в message
не были бы отражены в шаблоне, так как они происходят вне зоны Angular. 👉 @sWebDev
👍4
Lit
Библиотека для создания веб-компонентов с минимальным весом (~5 КБ). Использует стандартные HTML-шаблоны и JavaScript, эффективно обновляет только изменённые части DOM.
👉 @sWebDev
Библиотека для создания веб-компонентов с минимальным весом (~5 КБ). Использует стандартные HTML-шаблоны и JavaScript, эффективно обновляет только изменённые части DOM.
👉 @sWebDev
👍6
Как React-компилятор работает с реальным кодом
В статье рассматривается влияние React-компилятора на производительность приложений. Автор анализирует, как компилятор улучшает начальную загрузку и взаимодействие с приложением, а также оценивает его эффективность в предотвращении избыточных повторных рендеров. Для этого проводятся тесты на реальном приложении с предоставлением количественных результатов.
👉 @sWebDev
В статье рассматривается влияние React-компилятора на производительность приложений. Автор анализирует, как компилятор улучшает начальную загрузку и взаимодействие с приложением, а также оценивает его эффективность в предотвращении избыточных повторных рендеров. Для этого проводятся тесты на реальном приложении с предоставлением количественных результатов.
👉 @sWebDev
🔥3
Unpoly
Фреймворк для асинхронного обновления частей страницы. Позволяет обновлять только нужные элементы DOM, избегая полной перезагрузки. Отлично подходит для серверно-рендерных приложений, ускоряет их работу, поддерживает управление историей браузера и оптимизирован для SEO.
👉 @sWebDev
Фреймворк для асинхронного обновления частей страницы. Позволяет обновлять только нужные элементы DOM, избегая полной перезагрузки. Отлично подходит для серверно-рендерных приложений, ускоряет их работу, поддерживает управление историей браузера и оптимизирован для SEO.
👉 @sWebDev
👍5
Назначение декоратора @SkipSelf()
Для чего используется декоратор
Забыли? Вернитесь к посту от06.01.2025 .
👉 @sWebDev
Для чего используется декоратор
@SkipSelf()
?Забыли? Вернитесь к посту от
👉 @sWebDev
👍4
Для чего используется декоратор @SkipSelf()?
Anonymous Quiz
11%
Для поиска зависимости в глобальном инжекторе.
13%
Для создания нового экземпляра провайдера.
70%
Для пропуска текущего провайдера и использования родительского.
6%
Для оптимизации работы DI.
👍6
Angular сервис ErrorHandler с RetryWhen
В Angular сервис ErrorHandler можно расширить для создания продвинутой системы обработки ошибок. Совместно с оператором retryWhen, можно добавить автоматические повторные запросы с экспоненциальной задержкой.
Пример: кастомный ErrorHandler с повторной попыткой запроса.
👉 @sWebDev
В Angular сервис ErrorHandler можно расширить для создания продвинутой системы обработки ошибок. Совместно с оператором retryWhen, можно добавить автоматические повторные запросы с экспоненциальной задержкой.
Пример: кастомный ErrorHandler с повторной попыткой запроса.
typescriptimport { Injectable, ErrorHandler } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { retryWhen, delay, scan } from 'rxjs/operators';
@Injectable()
export class CustomErrorHandler implements ErrorHandler {
constructor(private http: HttpClient) {}
retryRequest(url: string) {
this.http.get(url).pipe(
retryWhen(errors =>
errors.pipe(
scan((attempts) => {
if (attempts >= 5) throw errors;
return attempts + 1;
}, 0),
delay(attempts => Math.pow(2, attempts) * 1000) // Экспоненциальная задержка
)
)
).subscribe(data => console.log('Success:', data));
}
}
👉 @sWebDev
👍5
GPU.js
GPU.js — это библиотека для выполнения сложных вычислений на GPU с использованием JavaScript. Она автоматически компилирует код JavaScript в WebGL-шейдеры для параллельных вычислений.
👉 @sWebDev
GPU.js — это библиотека для выполнения сложных вычислений на GPU с использованием JavaScript. Она автоматически компилирует код JavaScript в WebGL-шейдеры для параллельных вычислений.
👉 @sWebDev
👍3