Telegram Web Link
Использование runInInjectionContext() для доступа к DI вне компонентов

В Angular инъекция зависимостей (DI) обычно применяется в компонентах и сервисах с использованием декораторов. Однако, если необходимо использовать DI в обычных функциях или классах без Angular-декораторов, можно воспользоваться методом runInInjectionContext().

Пример:
import { inject, runInInjectionContext, Injectable, EnvironmentInjector } from '@angular/core';

@Injectable({ providedIn: 'root' })
class MyService {
logMessage() {
console.log('Hello from MyService!');
}
}

function executeWithDI(injector: EnvironmentInjector) {
runInInjectionContext(injector, () => {
const myService = inject(MyService);
myService.logMessage();
});
}

В этом примере функция executeWithDI принимает EnvironmentInjector и использует runInInjectionContext() для создания контекста инъекции. Внутри этого контекста вызывается функция inject() для получения экземпляра MyService, после чего вызывается метод logMessage().

👉 @sWebDev
🔥Podlodka React Crew – онлайн-конференция для React-разработчиков.

И в новом сезоне ребята решили разобраться, какие инструменты и знания включают в роадмапы профессионального развития и насколько они применимы.

Что в программе:

💬 Говорим на одном языке с пользователями: i18n в React-приложениях Виталий Баев, контрибьютор Next.js и Vite 🌍 Как выбрать инструменты и сделать интерфейс удобным для всех?

📡 OpenTelemetry для фронтенд-разработчика Валерий Катцин, frontend-разработчик в Точке 📊 Как собирать данные о работе приложения и использовать их для улучшения продукта?

🔥 "Долгожданный" React 19 – Алекс Рассудихин, разработчик с опытом во Vue, React, Next и Astro 🚀 Какие фичи вышли в продакшен, а какие – нет?

🤖 AI Integrated Developer Experience – Марк Байдебура, Senior Full-stack Engineer в Influencer 🧠 Где AI реально помогает, а где пока его лучше не использовать?

📅 Конференция пройдет 10-14 февраля.

Ты не просто узнаешь по новые фичи и подходы, но и определишься, какие из них включить в свой roadmap и как расти дальше.

🔗 Регистрируйтесь: podlodka.io/reactcrew

Промокод сообщества
react_crew_2_oMGfq4 даёт скидку в 500 руб 🥳
Знакомо?

👍 - Очень.

❤️ - Особенно когда путают Java и JS.

👉 @sWebDev | #юмор
GrapesJS

GrapesJS — библиотека для создания визуальных редакторов веб-страниц. Она позволяет строить редакторы, где пользователи могут создавать и редактировать HTML/CSS с помощью drag-and-drop.

👉 @sWebDev
Media is too big
VIEW IN TELEGRAM
Interactive Core with Dynamic Rings and Particles

Интерактивная анимация ядра на Three.Js.

👉 @sWebDev
Как работают React Server Components и Server Actions

Статья объясняет, как использовать React Server Components (RSC) и Server Actions. Рассматриваются их основные принципы, способы рендеринга (SSR, CSR, Hydration), а также процесс сборки с помощью Webpack и Turbopack. Подробно разбираются подходы к объединению клиентских и серверных компонентов.

👉 @sWebDev
Media is too big
VIEW IN TELEGRAM
3D Pyramid Animation

Анимация пирамид на Three.js.

👉 @sWebDev
Canvg

Canvg — библиотека, которая позволяет рендерить SVG-контент на <canvas> HTML5. Это полезно для работы с графикой в браузерах, которые не поддерживают SVG в полной мере или требуют манипуляций с графикой.

👉 @sWebDev
Работа с методом ApplicationRef.tick

Для чего используется метод ApplicationRef.tick()?

Забыли? Вернитесь к посту от 20.01.2025.

👉 @sWebDev
This media is not supported in your browser
VIEW IN TELEGRAM
Бывает что устаёте от удаленки?

👍 - Бывает.

❤️ - От хорошего не устают.

👉 @sWebDev | #юмор
Использование ChangeDetectorRef.detach() в Angular

Метод ChangeDetectorRef.detach() позволяет отключить компонент от системы обнаружения изменений. Это полезно, если компонент не должен отслеживать изменения постоянно. После вызова detach() Angular перестанет проверять компонент и его потомков на изменения, пока вы не вызовете обновление вручную через detectChanges().

Пример:
import { ChangeDetectorRef, Component } from '@angular/core';

@Component({
selector: 'app-performance',
template: `<div>{{ counter }}</div>`
})
export class PerformanceComponent {
counter = 0;

constructor(private cdr: ChangeDetectorRef) {}

ngOnInit() {
this.cdr.detach(); // Отключаем отслеживание изменений
setInterval(() => {
this.counter++; // Обновляем данные
this.cdr.detectChanges(); // Вручную запускаем проверку изменений
}, 1000);
}
}

В этом примере ChangeDetectorRef.detach() отключает систему обнаружения изменений, а вызов detectChanges() вручную обновляет интерфейс.

👉 @sWebDev
Media is too big
VIEW IN TELEGRAM
System Overheat

Пиксельная анимация фона на Three.js.

👉 @sWebDev
Магия CSS

.window.top { 
position: absolute;
transform: rotate(120deg);
overflow: hidden;
}

👉 @sWebDev | #юмор
Pell

Pell — это минималистичный WYSIWYG-редактор для веба. Он не имеет зависимостей и весит всего около 1.4 KB. Предоставляет базовые функции для форматирования текста, такие как жирный, курсив, подчеркивание, ссылки, списки и заголовки. Pell подходит для случаев, когда нужен простой текстовый редактор без лишнего функционала.

👉 @sWebDev
Media is too big
VIEW IN TELEGRAM
ROTATING PARTS

Анимация вращающихся деталей на на Three.js.

👉 @sWebDev
Добавление текста, отображаемого только при копировании, с помощью HTML и React

Статья описывает способ добавления скрытого текста, который становится видимым только при копировании и вставке содержимого. Рассматривается использование HTML и CSS для создания невидимого на странице текста. Также предоставлен React-компонент, который упрощает реализацию этой функциональности в React-приложениях.

👉 @sWebDev
This media is not supported in your browser
VIEW IN TELEGRAM
Attached mesh to armature

Пример, как в Three.js можно привязать 3D-модель (mesh) к скелету (armature) для анимации.

👉 @sWebDev
2025/07/06 19:32:55
Back to Top
HTML Embed Code: