Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Купить рекламу: https://telega.in/c/sWebDev
Post #4078
781
FR @swebdev
Showing posts older than #4080 · Back to latest




Skeleton Loading - это серые «заглушки», которые показываются до загрузки данных. Пользователь сразу видит структуру страницы и не думает, что сайт завис. Такой приём снижает число уходов и делает интерфейс визуально быстрее..skeleton {
background: linear-gradient(90deg,#eee 25%,#ddd 50%,#eee 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
}loading=true.
useLocalStorage сохраняет состояние в localStorage. При инициализации берёт данные из него (если есть), при обновлении — синхронно записывает. Удобно для темы, языка и других настроек, сохраняемых между сессиями.import { useState, useEffect } from 'react';
function useLocalStorage<T>(key: string, initialValue: T) {
const [value, setValue] = useState<T>(() => {
try {
const storedValue = localStorage.getItem(key);
return storedValue ? JSON.parse(storedValue) : initialValue;
} catch {
return initialValue;
}
});
useEffect(() => {
try {
localStorage.setItem(key, JSON.stringify(value));
} catch {
// Игнорируем ошибки (например, если storage переполнен)
}
}, [key, value]);
return [value, setValue] as const;
}useState, но с автоматическим сохранением.

useIsMounted устанавливается в значение false?

v-for и переиспользуемый компонент ввода.
🔴 Audi A8 (3.0 гибрид, автомат, полный привод)
🔴 Kia Sportage (1.6 бензин, механика, передний привод)
🔵 Volkswagen Tiguan (2.0 бензин, автомат, полный привод)
🔵 Volkswagen Golf (1.5 бензин, механика, передний привод)


if или тернарных операторов. Существует более лаконичный, декларативный подход с использованием spread-оператора (...) и логического оператора &&.условие && { стиль: 'значение' } вернет либо объект стилей, если условие истинно, либо false, если ложно. React при разворачивании (spread) falsy-значений (таких как false, null или undefined) внутри объекта просто игнорирует их, не добавляя никаких свойств. import React from 'react';
function AlertMessage({ text, isActive, isUrgent }) {
const baseStyles = {
margin: '10px 0',
padding: '15px',
borderRadius: '4px',
transition: 'all 0.2s ease-in-out',
};
const finalStyles = {
...baseStyles,
...(isActive && { background: '#f0f0f0' }),
...(isUrgent && { background: '#ffdddd', border: '1px solid red' }),
};
return <div style={finalStyles}>{text}</div>;
}
