Frontend по-флотски 👨💻
Идеально Размещённые Тултипы: База 🧑🎓 Anchor Positioning API всё ближе и ближе к массовой поддержке, пора поднять паруса и узнать больше 🏋️♀️ https://habr.com/ru/articles/965066/
Идеально размещённые тултипы: все четыре стороны 🧑🎓
Продолжаем прокачивать Anchor Positioning API🚀
https://habr.com/ru/articles/966998/
P.S. если не читал первую часть, то начни с неё👈
Продолжаем прокачивать Anchor Positioning API
https://habr.com/ru/articles/966998/
P.S. если не читал первую часть, то начни с неё
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Идеально размещённые тултипы: все четыре стороны
Эта статья — перевод оригинальной статьи « Perfectly Pointed Tooltips: All Four Sides ». Это вторая часть, первая часть уже есть на Хабре ( Идеально размещённые тултипы: база ), будет ещё перевод 3-ей...
👍11🔥5❤🔥3
Ну что, Holy.js стартанул, в этот раз дают таких стильных уточек 🤓
Через пару часов скину задачки, порешаем вместе👨💻
Через пару часов скину задачки, порешаем вместе
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍4👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥7👍1
Frontend по-флотски 👨💻
Идеально размещённые тултипы: все четыре стороны 🧑🎓 Продолжаем прокачивать Anchor Positioning API 🚀 https://habr.com/ru/articles/966998/ P.S. если не читал первую часть, то начни с неё 👈
Идеально размещённые тултипы: по углам 🧑🎓
Наконец-то добрался до перевода 3-ей части, приятного тебе чтения❤️
https://habr.com/ru/articles/972190/
1 часть — Идеально Размещённые Тултипы: База
2 часть — Идеально размещённые тултипы: все четыре стороны
Наконец-то добрался до перевода 3-ей части, приятного тебе чтения
https://habr.com/ru/articles/972190/
1 часть — Идеально Размещённые Тултипы: База
2 часть — Идеально размещённые тултипы: все четыре стороны
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Идеально размещённые тултипы: по углам
Эта статья — перевод оригинальной статьи « Perfectly Pointed Tooltips: To The Corners ». 1 часть - Идеально размещённые тултипы: база 2 часть - Идеально размещённые тултипы: все четыре стороны Также я...
🔥13❤6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
В каждой шутке есть доля неправды 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🤡11👍3👎3💊2❤1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Теперь можно тротлить или блочить отдельный запрос через девтулзы хрома, мега удобно 🔥
https://developer.chrome.com/blog/throttle-individual-network-requests
P.S. извини что пропал, возвращаюсь в строй, всех с прошедшим НГ🫡
https://developer.chrome.com/blog/throttle-individual-network-requests
P.S. извини что пропал, возвращаюсь в строй, всех с прошедшим НГ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53👍11❤🔥6
Cache Components в Next.js 16 — новая модель кэширования 👨💻
В Next.js 16 появился Cache Components — новый подход к кэшированию, построенный вокруг директивы
Как включить?
Как работает?
Директива
Cache Components дополняет Partial Pre-Rendering (PPR), который появился ещё в 2023. PPR позволял рендерить части страницы статически, а части — динамически через Suspense. Теперь эта концепция получила полноценный API
Есть 3 варианта где будет храниться кэш в зависимости от директивы
Пример 1: Кэширование функции получения данных
Теперь
Пример 2: Кэширование целого компонента
Каждый
Пример 3: Partial Pre-Rendering (PPR)
Cache Components отлично работает с PPR — можно комбинировать статику и динамику на одной странице:
Статическая оболочка страницы отдаётся мгновенно, а персонализированные рекомендации подгружаются стримингом
Документация и анонс👇
https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents
https://nextjs.org/blog/next-16#cache-components
В Next.js 16 появился Cache Components — новый подход к кэшированию, построенный вокруг директивы
'use cache'. Главное изменение: кэширование теперь полностью opt-in. Никакого неявного кэширования — весь динамический код выполняется в момент запроса по умолчаниюКак включить?
// next.config.ts
const nextConfig = {
cacheComponents: true,
};
export default nextConfig;
Как работает?
Директива
'use cache' применяется к страницам, компонентам или функциям. Компилятор автоматически генерирует ключи кэша — не нужно вручную прописывать зависимостиCache Components дополняет Partial Pre-Rendering (PPR), который появился ещё в 2023. PPR позволял рендерить части страницы статически, а части — динамически через Suspense. Теперь эта концепция получила полноценный API
Есть 3 варианта где будет храниться кэш в зависимости от директивы
'use cache' — in-memory на сервере'use cache: remote' — внешнее хранилище (Redis)'use cache: private' — память браузераПример 1: Кэширование функции получения данных
import { cacheLife, cacheTag } from 'next/cache';
async function getProducts() {
'use cache';
cacheLife('hours'); // кэш на несколько часов
cacheTag('products'); // тег для инвалидации
const res = await fetch('https://api.store.com/products');
return res.json();
}Теперь
getProducts() вернёт закэшированный результат. Компилятор автоматически сгенерирует ключ кэша на основе аргументов функцииПример 2: Кэширование целого компонента
async function ProductCard({ id }: { id: string }) {
'use cache';
cacheLife('days');
cacheTag(`product-${id}`);
const product = await getProduct(id);
return (
<div className="card">
<h2>{product.name}</h2>
<p>{product.price} ₽</p>
</div>
);
}Каждый
ProductCard с уникальным id получит свой кэш. При изменении товара инвалидируем только его: revalidateTag('product-123', 'max')Пример 3: Partial Pre-Rendering (PPR)
Cache Components отлично работает с PPR — можно комбинировать статику и динамику на одной странице:
import { Suspense } from 'react';
export default async function ProductPage({ params }) {
const { id } = await params;
return (
<div>
{/* Статическая часть — закэширована */}
<ProductDetails id={id} />
{/* Динамическая часть — рендерится на лету */}
<Suspense fallback={<div>Загрузка...</div>}>
<PersonalizedRecommendations productId={id} />
</Suspense>
</div>
);
}
async function ProductDetails({ id }: { id: string }) {
'use cache';
cacheLife('max');
const product = await fetchProduct(id);
return <div>{product.description}</div>;
}Статическая оболочка страницы отдаётся мгновенно, а персонализированные рекомендации подгружаются стримингом
Документация и анонс
https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents
https://nextjs.org/blog/next-16#cache-components
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤣5❤🔥2👍2👎2😁2🗿2❤1
А помнишь как мы с тобой использовали
Во были времена... сейчас как-то всё слишком легко...
transform: rotate(90deg), чтобы покрутить элемент на 90 градусов, но забывали, что где-то выше было transform: translate(-50%) и всё ломалось :(Во были времена... сейчас как-то всё слишком легко...
😁22👍5🫡4❤3💯2