Анализ работы серверных компонентов (RSCs) React
Статья предлагает глубокий анализ принципов работы серверных компонентов React, рассматривая процессы рендеринга, взаимодействие с клиентскими компонентами и влияние на производительность. Прочитав ее, вы получите полное представление об RSC и сможете лучше применять их для оптимизации ваших React-приложений.
👉 @sWebDev
Статья предлагает глубокий анализ принципов работы серверных компонентов React, рассматривая процессы рендеринга, взаимодействие с клиентскими компонентами и влияние на производительность. Прочитав ее, вы получите полное представление об RSC и сможете лучше применять их для оптимизации ваших React-приложений.
👉 @sWebDev
🔥2
Media is too big
VIEW IN TELEGRAM
Threejs Explorations
Настраиваемая анимация, сочетающая морфинг и триггер на прокрутку, реализована на базе Three.js для 3D-рендеринга и GSAP для покадровой анимации.
👉 @sWebDev
Настраиваемая анимация, сочетающая морфинг и триггер на прокрутку, реализована на базе Three.js для 3D-рендеринга и GSAP для покадровой анимации.
👉 @sWebDev
❤1
Alpaca Forms
Alpaca Forms - это JavaScript библиотека для генерации веб-форм. Он позволяет создавать формы динамически, используя JSON-схемы. Поддерживает различные типы полей, правила валидации и темы оформления.
👉 @sWebDev
Alpaca Forms - это JavaScript библиотека для генерации веб-форм. Он позволяет создавать формы динамически, используя JSON-схемы. Поддерживает различные типы полей, правила валидации и темы оформления.
👉 @sWebDev
👍3
Пакетное обновление и flushSync()
Как изменяется поведение пакетного обновления при использовании
Забыли? Вернитесь к посту от24.03.2025 .
👉 @sWebDev
Как изменяется поведение пакетного обновления при использовании
flushSync()?Забыли? Вернитесь к посту от
👉 @sWebDev
👍2
Как влияет flushSync() на стандартное пакетирование обновлений?
Anonymous Quiz
27%
Объединяет обновления в один пакет.
59%
Выполняет обновления синхронно, обходя пакетирование.
7%
Откладывает обновления до следующего цикла событий.
6%
Отменяет все обновления состояния.
👍4
Прямой доступ к DOM-элементам
Метод
Пример:
👉 @sWebDev
Метод
findDOMNode() в React предоставляет прямой доступ к реальному DOM-узлу компонента. Обычно его применяют в старых компонентах или библиотеках, где нет возможности использовать рефы. Несмотря на удобство, findDOMNode() считается устаревшим из-за ограничений и потенциальных конфликтов с React Strict Mode. Этот метод нельзя использовать в функциональных компонентах и компонентах, созданных с помощью React.forwardRef(). Команда React рекомендует вместо него использовать React.createRef() или хук useRef(), так как они безопаснее и более совместимы с современным подходом React.Пример:
import React from 'react';
import { findDOMNode } from 'react-dom';
class LegacyComponent extends React.Component {
componentDidMount() {
const node = findDOMNode(this);
node.style.color = 'blue';
}
render() {
return <div>Прямой доступ к DOM!</div>;
}
}
👉 @sWebDev
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Когда джун слишком честный на презентации…
👍 – Лучше клиент узнает сразу!
❤️ – Джун больше не ходит на демо.
👉 @sWebDev | #юмор
👍 – Лучше клиент узнает сразу!
❤️ – Джун больше не ходит на демо.
👉 @sWebDev | #юмор
❤10👍1
Embla Carousel
Embla Carousel — JavaScript-библиотека для создания слайдеров и каруселей с минимальным размером и поддержкой сенсорных экранов. Не имеет зависимостей и настраивается через чистый JavaScript API.
👉 @sWebDev
Embla Carousel — JavaScript-библиотека для создания слайдеров и каруселей с минимальным размером и поддержкой сенсорных экранов. Не имеет зависимостей и настраивается через чистый JavaScript API.
👉 @sWebDev
👍3
Адаптивное видеостриминг с использованием Dash.js в React
Стандартный видеоплеер в браузере часто не справляется с разной скоростью интернета пользователей, вызывая паузы и зависания. Статья показывает, как решить эту проблему с помощью адаптивного битрейт-стриминга (ABR) на основе Dash.js. Автор объясняет, как настроить сегментирование видео, использовать FFmpeg и интегрировать Dash.js в React-приложение, чтобы обеспечить плавное воспроизведение при любом соединении.
👉 @sWebDev
Стандартный видеоплеер в браузере часто не справляется с разной скоростью интернета пользователей, вызывая паузы и зависания. Статья показывает, как решить эту проблему с помощью адаптивного битрейт-стриминга (ABR) на основе Dash.js. Автор объясняет, как настроить сегментирование видео, использовать FFmpeg и интегрировать Dash.js в React-приложение, чтобы обеспечить плавное воспроизведение при любом соединении.
👉 @sWebDev
👍4
NProgress
NProgress — миниатюрная библиотека для добавления индикатора загрузки в верхней части веб-страницы. Позволяет визуально показать прогресс загрузки или выполнения задачи.
👉 @sWebDev
NProgress — миниатюрная библиотека для добавления индикатора загрузки в верхней части веб-страницы. Позволяет визуально показать прогресс загрузки или выполнения задачи.
👉 @sWebDev
👍3
Как работает flushSync?
Что делает метод
Забыли? Вернитесь к посту от31.03.2025 .
👉 @sWebDev
Что делает метод
flushSync() в React?Забыли? Вернитесь к посту от
👉 @sWebDev
❤3
Что делает метод flushSync() в React?
Anonymous Quiz
68%
Немедленно обновляет состояние и выполняет ререндер.
10%
Отменяет пакетирование обновлений.
17%
Откладывает ререндер на следующий кадр.
5%
Запрещает обновления компонентов.
👍3
Ручной запуск обновления
Метод
В этом примере внешний обработчик (
👉 @sWebDev
Метод
ɵmarkDirty() в Angular вручную помечает компонент как «грязный», инициируя обновление при следующем цикле детекции изменений. Это используется вне зоны Angular (например, в стороннем коде), и работает только с ChangeDetectionStrategy.OnPush.import {
Component,
ChangeDetectionStrategy,
ɵmarkDirty
} from '@angular/core';
declare const externalClick: (cb: () => void) => void;
@Component({
selector: 'app-alert',
template: `<p *ngIf="visible">Внешнее событие!</p>`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class AlertComponent {
visible = false;
ngOnInit() {
externalClick(() => {
this.visible = true;
ɵmarkDirty(this);
});
}
}В этом примере внешний обработчик (
externalClick) активирует компонент, не запуская Angular change detection. Мы вручную вызываем ɵmarkDirty(this), чтобы Angular отрендерил компонент на следующем проходе.👉 @sWebDev
👍4
Notie
Notie — это минималистичная библиотека для отображения уведомлений, подтверждений и запросов в браузере. Не требует зависимостей, легко настраивается и подходит для быстрого информирования пользователя без перегрузки интерфейса.
👉 @sWebDev
Notie — это минималистичная библиотека для отображения уведомлений, подтверждений и запросов в браузере. Не требует зависимостей, легко настраивается и подходит для быстрого информирования пользователя без перегрузки интерфейса.
👉 @sWebDev
❤3👎3