Drift
Drift — JavaScript-библиотека для реализации эффекта увеличения изображения при наведении. Позволяет создавать плавный zoom-фокус без перезагрузки страницы и подходит для магазинов, галерей и витринных сайтов.
👉 @sWebDev
Drift — JavaScript-библиотека для реализации эффекта увеличения изображения при наведении. Позволяет создавать плавный zoom-фокус без перезагрузки страницы и подходит для магазинов, галерей и витринных сайтов.
👉 @sWebDev
👍3
Самый безопасный способ скрыть API-ключи в React
В React-приложениях API-ключи легко могут утечь, если оставить их на клиенте. В статье объясняется, почему нельзя полагаться на переменные окружения или обфускацию кода, и почему для защиты ключей нужно использовать серверную прослойку. Разбор показывает, как правильно выстраивать архитектуру запросов, чтобы ключи не попадали в браузер.
👉 @sWebDev
В React-приложениях API-ключи легко могут утечь, если оставить их на клиенте. В статье объясняется, почему нельзя полагаться на переменные окружения или обфускацию кода, и почему для защиты ключей нужно использовать серверную прослойку. Разбор показывает, как правильно выстраивать архитектуру запросов, чтобы ключи не попадали в браузер.
👉 @sWebDev
👍4🤔1
Toastify.js
Toastify.js — JavaScript-библиотека для создания минималистичных тост-уведомлений без использования jQuery. Поддерживает стилизацию, действия при клике, позиционирование и автоматическое скрытие сообщений. Подойдёт для быстрого информирования пользователя на сайте.
👉 @sWebDev
Toastify.js — JavaScript-библиотека для создания минималистичных тост-уведомлений без использования jQuery. Поддерживает стилизацию, действия при клике, позиционирование и автоматическое скрытие сообщений. Подойдёт для быстрого информирования пользователя на сайте.
👉 @sWebDev
👍3
Назначение метода
Что делает метод
Забыли? Вернитесь к посту от21.04.2025 .
👉 @sWebDev
Что делает метод
ɵmarkDirty() в компоненте?Забыли? Вернитесь к посту от
👉 @sWebDev
❤3
Что делает метод ɵmarkDirty() в компоненте?
Anonymous Quiz
58%
Отмечает компонент для обновления.
14%
Отключает стратегию OnPush.
19%
Немедленно запускает рендер.
9%
Привязывает его к NgZone.
👍4
Принудительное обновление кэша
Хук возвращает функцию, которую можно вызвать в любой момент для сброса и перезапроса кэшированных данных. Данный способ полезен, когда нужно контролировать обновление без полного перезапуска компонента.
В примере кэш обновляется при клике на кнопку, вызывая новые запросы к серверу через связанную инфраструктуру кэширования.
👉 @sWebDev
Unstable_useCacheRefresh() используется для ручного обновления данных, полученных через React Cache API. Этот хук позволяет инициировать повторное получение кэшированных ресурсов, например, после пользовательского действия. Хотя API нестабильный, он применим в React Server Components и продвинутых схемах работы с асинхронными данными.Хук возвращает функцию, которую можно вызвать в любой момент для сброса и перезапроса кэшированных данных. Данный способ полезен, когда нужно контролировать обновление без полного перезапуска компонента.
'use client';
import { unstable_useCacheRefresh as useCacheRefresh } from 'react';
export default function RefreshButton() {
const refresh = useCacheRefresh();
return (
<button onClick={() => refresh()}>
Обновить кэш
</button>
);
}
В примере кэш обновляется при клике на кнопку, вызывая новые запросы к серверу через связанную инфраструктуру кэширования.
👉 @sWebDev
👍5
Bouncer.js
Bouncer.js — легковесная библиотека для валидации форм на стороне клиента без зависимостей. Работает через нативные браузерные API и подходит для простых и адаптивных форм без необходимости подключения крупных фреймворков.
👉 @sWebDev
Bouncer.js — легковесная библиотека для валидации форм на стороне клиента без зависимостей. Работает через нативные браузерные API и подходит для простых и адаптивных форм без необходимости подключения крупных фреймворков.
👉 @sWebDev
👍4
Как использовать proxyConfig в Angular для локальной разработки
Работа с API на локальной разработке часто вызывает проблемы из-за CORS. В статье объясняется, как правильно настроить proxyConfig в Angular, чтобы отправлять запросы через прокси без изменения кода.
👉 @sWebDev
Работа с API на локальной разработке часто вызывает проблемы из-за CORS. В статье объясняется, как правильно настроить proxyConfig в Angular, чтобы отправлять запросы через прокси без изменения кода.
👉 @sWebDev
👍3
BaguetteBox.js
BaguetteBox.js — JavaScript-библиотека для создания адаптивных галерей с эффектом lightbox. Поддерживает свайпы на мобильных устройствах, навигацию с клавиатуры и легко встраивается в готовую вёрстку.
👉 @sWebDev
BaguetteBox.js — JavaScript-библиотека для создания адаптивных галерей с эффектом lightbox. Поддерживает свайпы на мобильных устройствах, навигацию с клавиатуры и легко встраивается в готовую вёрстку.
👉 @sWebDev
❤2
Поиск зависимости при SkipSelf
Как работает флаг
Забыли? Вернитесь к посту от28.04.2025 .
👉 @sWebDev
Как работает флаг
InjectFlags.SkipSelf при внедрении зависимости?Забыли? Вернитесь к посту от
👉 @sWebDev
👍2
Как работает флаг InjectFlags.SkipSelf при внедрении зависимости?
Anonymous Quiz
15%
Ищет только в текущем инжекторе.
68%
Ищет в родительских инжекторах, пропуская текущий.
5%
Отменяет внедрение зависимости.
12%
Вызывает ошибку при отсутствии провайдера.
👍4
Отключение шаблона от change detection через ViewRef.detach()
В Angular метод
Такой подход позволяет вручную управлять производительностью, особенно при наличии большого количества вложенных представлений, не требующих постоянного обновления.
👉 @sWebDev
В Angular метод
detach() у ViewRef позволяет временно исключить представление из механизма обнаружения изменений. Это значит, что Angular перестаёт отслеживать изменения данных внутри отключённого представления, что полезно при работе с тяжёлыми компонентами или при необходимости заморозить часть UI.ViewRef можно получить, например, при создании представления через ViewContainerRef.createEmbeddedView() или createComponent(). После вызова detach() Angular перестаёт проверять это представление при каждом цикле изменений. Чтобы снова активировать его, вызывается viewRef.reattach().const viewRef = viewContainer.createEmbeddedView(templateRef);
viewRef.detectChanges();
viewRef.detach();
// ...позже
viewRef.reattach();
Такой подход позволяет вручную управлять производительностью, особенно при наличии большого количества вложенных представлений, не требующих постоянного обновления.
👉 @sWebDev
👍4