#NextJS
🚩 Почему обычный <noscript> тег не работает для критичных скриптов?
В Next.js для добавления скриптов, которые должны выполняться до рендера, используется компонент Script с атрибутом strategy. Обычные noscript теги в React не гарантируют порядок выполнения и могут блокировать рендеринг. Next.js Script оптимизирует загрузку скриптов и даёт контроль над их выполнением.
📎 Стратегии загрузки Script:
🟣 beforeInteractive — скрипт загружается и выполняется ДО гидратации React
🟣 afterInteractive — выполняется после гидратации (по умолчанию)
🟣 lazyOnload — загружается когда браузер простаивает
🟣 worker — выполняется в Web Worker (экспериментально)
beforeInteractive используется только в _document.js для критичных скриптов, которые нужны до интерактивности страницы. Это полифиллы, A/B тестирование, определение темы. Скрипт внедряется в HTML до любого Next.js кода и гарантированно выполняется первым.
afterInteractive (по умолчанию) подходит для большинства скриптов: аналитика, реклама, пиксели отслеживания. Они загружаются после того как страница стала интерактивной, не блокируя первоначальный рендеринг.
✅ Правильный подход:
- Используйте beforeInteractive только в _document.js для критичных скриптов
- afterInteractive для аналитики и сторонних сервисов
- lazyOnload для некритичных виджетов (чаты, соцсети)
- Inline скрипты через dangerouslySetInnerHTML внутри Script
❌ Избегайте:
- Обычных <noscript> тегов в компонентах React
- beforeInteractive в обычных страницах (только _document.js)
- Блокирующих скриптов без strategy
- Загрузки тяжёлых скриптов синхронно
Next.js Script оптимизирует производительность автоматически!
🔎 🔎 🔎 🔎 🔄
#⃣ Вопрос
#⃣ Новости
#⃣ База вопросов
В Next.js для добавления скриптов, которые должны выполняться до рендера, используется компонент Script с атрибутом strategy. Обычные noscript теги в React не гарантируют порядок выполнения и могут блокировать рендеринг. Next.js Script оптимизирует загрузку скриптов и даёт контроль над их выполнением.
// Плохо - обычный noscript тег
export default function Page() {
return (
<div>
<noscript src="/analytics.js"></noscript>
{/* React игнорирует это, нет контроля над загрузкой */}
</div>
);
}
// Хорошо - Next.js Script компонент
import Script from 'next/noscript';
export default function Page() {
return (
<>
{/* beforeInteractive - выполняется ДО гидратации */}
<Script
src="/critical-noscript.js"
strategy="beforeInteractive"
/>
{/* afterInteractive - после гидратации (по умолчанию) */}
<Script
src="/analytics.js"
strategy="afterInteractive"
/>
{/* lazyOnload - когда браузер свободен */}
<Script
src="/chat-widget.js"
strategy="lazyOnload"
/>
</>
);
}
beforeInteractive используется только в _document.js для критичных скриптов, которые нужны до интерактивности страницы. Это полифиллы, A/B тестирование, определение темы. Скрипт внедряется в HTML до любого Next.js кода и гарантированно выполняется первым.
afterInteractive (по умолчанию) подходит для большинства скриптов: аналитика, реклама, пиксели отслеживания. Они загружаются после того как страница стала интерактивной, не блокируя первоначальный рендеринг.
- Используйте beforeInteractive только в _document.js для критичных скриптов
- afterInteractive для аналитики и сторонних сервисов
- lazyOnload для некритичных виджетов (чаты, соцсети)
- Inline скрипты через dangerouslySetInnerHTML внутри Script
- Обычных <noscript> тегов в компонентах React
- beforeInteractive в обычных страницах (только _document.js)
- Блокирующих скриптов без strategy
- Загрузки тяжёлых скриптов синхронно
Next.js Script оптимизирует производительность автоматически!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2👍2
#Собес #ооп #solid #event_loop
🤔 Middle+ Frontend Разработчик в ivi
Техническое собеседование. Дали оффер: 280к net. Ноябрь 2024. Офис. Проект: стриминговая платформа. Опыт в резюме: 4 года. Много вопросов про опыт, проекты и процессы. Копали в глубину. Так же спрашивали про ООП, SOLID, как применяю в проектах
💬 Вопросы:
- Можно ли из Web Worker'а напрямую отрендерить React-компонент (или компонент другого фреймворка) в DOM?
- Какие есть способы вынести тяжелые вычисления из основного потока, чтобы не блокировать интерфейс?
- Блокирует ли тяжелый код в Promise рендер страницы?
- Как работает асинхронность в JS?
- Какие основные структуры данных существуют в программировании?
👉 Все вопросы из этого собеседования (8)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle+ Frontend Разработчик в ivi
Техническое собеседование. Дали оффер: 280к net. Ноябрь 2024. Офис. Проект: стриминговая платформа. Опыт в резюме: 4 года. Много вопросов про опыт, проекты и процессы. Копали в глубину. Так же спрашивали про ООП, SOLID, как применяю в проектах
💬 Вопросы:
- Можно ли из Web Worker'а напрямую отрендерить React-компонент (или компонент другого фреймворка) в DOM?
- Какие есть способы вынести тяжелые вычисления из основного потока, чтобы не блокировать интерфейс?
- Блокирует ли тяжелый код в Promise рендер страницы?
- Как работает асинхронность в JS?
- Какие основные структуры данных существуют в программировании?
👉 Все вопросы из этого собеседования (8)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
👍5❤2
#trainer #курсы #тренажеры
📚 CodeChef
Онлайн-платформа программирования, которая позволяет учащимся осваивать программирование с помощью структурированных курсов, тысяч практических задач и регулярных конкурсов
Перейти к материалу
👉 База вопросов 👉 Новости
📚 CodeChef
Онлайн-платформа программирования, которая позволяет учащимся осваивать программирование с помощью структурированных курсов, тысяч практических задач и регулярных конкурсов
Перейти к материалу
👉 База вопросов 👉 Новости
❤1
#Собес #context
🤔 Как создать глобальное состояние с помощью Context API?
💬 Кратко:
Context API — это способ передачи данных через дерево компонентов без необходимости передавать их через пропсы на каждом уровне. Для создания глобального состояния вы создаете контекст с помощью
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как создать глобальное состояние с помощью Context API?
💬 Кратко:
Context API — это способ передачи данных через дерево компонентов без необходимости передавать их через пропсы на каждом уровне. Для создания глобального состояния вы создаете контекст с помощью
React.createContext(), оборачиваете ваши компоненты в провайдер, а затем используете useContext для доступа к данным в любом дочернем компоненте.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍6
Forwarded from IT Books Ready | Программирование
This media is not supported in your browser
VIEW IN TELEGRAM
Это не демо и не учебный «туду-лист», а полноценная платформа с продуманной архитектурой и современным стеком: React, TypeScript, Redux Toolkit, React Hook Form, FSD.
Можно изучить каждую страницу, каждый компонент, посмотреть, как устроен код в боевом проекте, и забрать себе лучшие практики!
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
#Собес #clone #deepcopy
🤔 Как выполнить глубокое копирование объекта?
💬 Кратко:
Для глубокого копирования объектов используйте
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как выполнить глубокое копирование объекта?
💬 Кратко:
Для глубокого копирования объектов используйте
JSON.parse(JSON.stringify(obj)) для простых объектов, structuredClone() для современных браузеров, или библиотеки типа Lodash _.cloneDeep(). Ручная рекурсивная функция также подходит для сложных случаев. Каждый метод имеет свои ограничения и особенности.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1👍1
#React
🚩 Почему в JavaScript файлах можно писать HTML-подобный код?
JSX (JavaScript XML) — это синтаксическое расширение JavaScript, которое позволяет писать HTML-подобную разметку внутри JavaScript кода. JSX не является валидным JavaScript и компилируется в обычные вызовы функций React.createElement(). Это делает код компонентов более читаемым и интуитивным.
📎 Ключевые особенности JSX:
🟣 JSX компилируется в React.createElement() вызовы
🟣 Можно использовать JavaScript выражения в фигурных скобках {}
🟣 HTML атрибуты пишутся в camelCase (className, onClick)
🟣 JSX элементы могут быть присвоены переменным и возвращены из функций
JSX не является обязательным для React, но делает код значительно читаемее. Вместо вложенных вызовов функций вы видите привычную HTML-подобную структуру. Babel или другой транспайлер преобразует JSX в JavaScript до запуска кода.
В JSX можно вставлять любые JavaScript выражения внутри фигурных скобок: переменные, вызовы функций, тернарные операторы, map для списков. Это позволяет создавать динамические компоненты с условной логикой прямо в разметке.
✅ Правильный подход:
- Используйте JSX для всех React компонентов
- Оборачивайте многострочный JSX в круглые скобки ()
- Используйте {} для JavaScript выражений внутри JSX
- Помните что JSX возвращает один корневой элемент (или Fragment)
❌ Избегайте:
- Использования class вместо className
- Забывать закрывать теги (все теги должны быть закрыты)
- Вставлять JavaScript statements (if, for) напрямую в JSX
- Возвращать несколько корневых элементов без обёртки
JSX делает React код похожим на HTML, но это JavaScript!
🔎 🔎 🔎 🔎 🔄
#⃣ Вопрос
#⃣ Новости
#⃣ База вопросов
JSX (JavaScript XML) — это синтаксическое расширение JavaScript, которое позволяет писать HTML-подобную разметку внутри JavaScript кода. JSX не является валидным JavaScript и компилируется в обычные вызовы функций React.createElement(). Это делает код компонентов более читаемым и интуитивным.
// Плохо - React.createElement (так работает под капотом)
function Button() {
return React.createElement(
'button',
{ className: 'btn', onClick: handleClick },
React.createElement('span', null, 'Click me'),
React.createElement('span', null, '👆')
);
}
// Хорошо - JSX (компилируется в код выше)
function Button() {
return (
<button className="btn" onClick={handleClick}>
<span>Click me</span>
<span>👆</span>
</button>
);
}
JSX не является обязательным для React, но делает код значительно читаемее. Вместо вложенных вызовов функций вы видите привычную HTML-подобную структуру. Babel или другой транспайлер преобразует JSX в JavaScript до запуска кода.
В JSX можно вставлять любые JavaScript выражения внутри фигурных скобок: переменные, вызовы функций, тернарные операторы, map для списков. Это позволяет создавать динамические компоненты с условной логикой прямо в разметке.
- Используйте JSX для всех React компонентов
- Оборачивайте многострочный JSX в круглые скобки ()
- Используйте {} для JavaScript выражений внутри JSX
- Помните что JSX возвращает один корневой элемент (или Fragment)
- Использования class вместо className
- Забывать закрывать теги (все теги должны быть закрыты)
- Вставлять JavaScript statements (if, for) напрямую в JSX
- Возвращать несколько корневых элементов без обёртки
JSX делает React код похожим на HTML, но это JavaScript!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👎1🏆1
#Собес #react #sollid #microfrontend
🤔 Middle Frontend разработчик в компанию X5
Техническое собеседование. Лето 2025. Опыт: 4.3 года. Вилка: 200к+. Проект: проектирование биржевого терминала/аналитической платформы. В конце был лайвкодинг.
💬 Вопросы:
- Как обеспечить изоляцию зависимостей?
- Как управлять версионностью зависимостей (например, React) между микрофронтами?
- Какие проблемы возникают в микрофронтенд-архитектуре?
- Как спроектировать структуру приложения с учётом SOLID?
- Как интерпретировать принцип замены Лисков (L в SOLID) во фронтенде (на примере React)?
👉 Все вопросы из этого собеседования (21)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Frontend разработчик в компанию X5
Техническое собеседование. Лето 2025. Опыт: 4.3 года. Вилка: 200к+. Проект: проектирование биржевого терминала/аналитической платформы. В конце был лайвкодинг.
💬 Вопросы:
- Как обеспечить изоляцию зависимостей?
- Как управлять версионностью зависимостей (например, React) между микрофронтами?
- Какие проблемы возникают в микрофронтенд-архитектуре?
- Как спроектировать структуру приложения с учётом SOLID?
- Как интерпретировать принцип замены Лисков (L в SOLID) во фронтенде (на примере React)?
👉 Все вопросы из этого собеседования (21)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤4
#Собес #build #pipeline #automation
🤔 Что такое build pipeline?
💬 Кратко:
Build pipeline — это набор автоматизированных шагов, через которые проходит код перед развертыванием. Он включает сборку, тестирование и подготовку к развертыванию, гарантируя, что только рабочий код попадёт в продакшн
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое build pipeline?
💬 Кратко:
Build pipeline — это набор автоматизированных шагов, через которые проходит код перед развертыванием. Он включает сборку, тестирование и подготовку к развертыванию, гарантируя, что только рабочий код попадёт в продакшн
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍4👎1
#tool #гит
📚 Хочешь изучить Git, не рискуя своей локальной установкой?
Теперь можно запускать команды Git прямо из браузера , с пошаговым объяснением, что делает каждая команда.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Хочешь изучить Git, не рискуя своей локальной установкой?
Теперь можно запускать команды Git прямо из браузера , с пошаговым объяснением, что делает каждая команда.
Перейти к материалу
👉 База вопросов 👉 Новости
❤5👍2
#Собес #javanoscript #dom #events
🤔 Как подписаться на событие клика кнопки в DOM?
💬 Кратко:
Используйте метод
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как подписаться на событие клика кнопки в DOM?
💬 Кратко:
Используйте метод
addEventListener для подписки на событие click:document.querySelector('button').addEventListener('click', () => {
console.log('Кнопка нажата!');
});📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🔥2👍1👎1
#React
🚩 Почему ваш компонент не видит обновления Props?
Props — это read-only канал от родителя к ребёнку. Главное: вы не можете их менять. Попытка мутировать Props приведёт к тому, что обновления не произойдут.
📎 Основные проблемы:
🟣 Props read-only, но разработчики их мутируют
🟣 Передача всего объекта вместо деструктуризации
🟣 Забывают про dependency в useEffect при изменении props
Props — это контракт: родитель передаёт данные, ребёнок их использует, но не меняет. Если нужно обновить — вызови callback.
Пример:
✅ Props для:
- Передачи данных сверху вниз
- Callback функций для событий
- Конфигурации компонента
- Переиспользуемых компонентов
❌ Не делайте:
- Мутацию Props
- Props drilling (5+ уровней)
- Передачу целого объекта
Props — основа React!
🔎 🔎 🔎 🔎 🔄
#⃣Вопрос
#⃣Новости
#⃣База вопросов
Props — это read-only канал от родителя к ребёнку. Главное: вы не можете их менять. Попытка мутировать Props приведёт к тому, что обновления не произойдут.
// Плохо - Props read-only
function UserCard(props) {
props.name = "Bob"; // ❌ Не сработает!
return <h1>{props.name}</h1>;
}
// Хорошо - Используйте callback
function UserCard({ name, onNameChange }) {
return (
<>
<h1>{name}</h1>
<button onClick={() => onNameChange("Bob")}>Change</button>
</>
);
}
Props — это контракт: родитель передаёт данные, ребёнок их использует, но не меняет. Если нужно обновить — вызови callback.
Пример:
function Button({ label = "Click", onClick }) {
return <button onClick={onClick}>{label}</button>;
}
function Shop() {
const [cart, setCart] = React.useState([]);
const products = [{ id: 1, name: "Laptop", price: 1000 }];
return (
<div>
{products.map(p => (
<Button key={p.id} label="Add" onClick={() => setCart([...cart, p.name])} />
))}
<p>Cart: {cart.length}</p>
</div>
);
}- Передачи данных сверху вниз
- Callback функций для событий
- Конфигурации компонента
- Переиспользуемых компонентов
- Мутацию Props
- Props drilling (5+ уровней)
- Передачу целого объекта
Props — основа React!
#⃣Вопрос
#⃣Новости
#⃣База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1👎1🔥1
#Собес #typenoscript #javanoscript #object
🤔 Middle Frontend разработчик в компанию Ай-Теко
Техсобес. ЗП: от 200к. Май 2025. Проект: Сбер. Опыт: 4 года. Задачи: Отсортировать список нечетных чисел, Валидность скобок.
💬 Вопросы:
- Какие есть способы создания объектов и в чем их отличия?
- Что такое Promise?
- Как отменить fetch-запрос?
- Что такое цикл событий (event loop) и как он работает?
- Расскажите про все методы Promise?
👉 Все вопросы из этого собеседования (14)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Frontend разработчик в компанию Ай-Теко
Техсобес. ЗП: от 200к. Май 2025. Проект: Сбер. Опыт: 4 года. Задачи: Отсортировать список нечетных чисел, Валидность скобок.
💬 Вопросы:
- Какие есть способы создания объектов и в чем их отличия?
- Что такое Promise?
- Как отменить fetch-запрос?
- Что такое цикл событий (event loop) и как он работает?
- Расскажите про все методы Promise?
👉 Все вопросы из этого собеседования (14)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
👎2❤1
#Собес #authentication #password #biometrics
🤔 Назовите три метода аутентификации пользователя.
💬 Кратко:
Три метода аутентификации — это биометрия (например, отпечаток пальца), токен (электронное устройство или карта) и пароль. Для повышения безопасности можно использовать двухфакторную аутентификацию, комбинируя два из этих методов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Назовите три метода аутентификации пользователя.
💬 Кратко:
Три метода аутентификации — это биометрия (например, отпечаток пальца), токен (электронное устройство или карта) и пароль. Для повышения безопасности можно использовать двухфакторную аутентификацию, комбинируя два из этих методов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👎3👍1
#trainer #тесты
📚 Тесты для проверки своих знаний по React
Отличная специализированная образовательная платформа, посвященная тестированию знаний в области фронтенд-разработки, с особым акцентом на библиотеку React.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Тесты для проверки своих знаний по React
Отличная специализированная образовательная платформа, посвященная тестированию знаний в области фронтенд-разработки, с особым акцентом на библиотеку React.
Перейти к материалу
👉 База вопросов 👉 Новости
🔥9👎2❤1👍1
#Собес #react #keys #реакт
🤔 Как использовать keys?
💬 Кратко:
Keys — это уникальные идентификаторы, которые React использует для того, чтобы отслеживать элементы при рендеринге списков. Они помогают React эффективно обновлять только те элементы, которые изменились, а не перерендеривать весь список. Ключи должны быть уникальными среди соседних элементов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как использовать keys?
💬 Кратко:
Keys — это уникальные идентификаторы, которые React использует для того, чтобы отслеживать элементы при рендеринге списков. Они помогают React эффективно обновлять только те элементы, которые изменились, а не перерендеривать весь список. Ключи должны быть уникальными среди соседних элементов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍7❤1
#React #JavaScript
🚩 Почему props drilling разрушает вашу архитектуру React?
Redux — это предсказуемый контейнер состояния для JavaScript-приложений. Вместо передачи данных через множество слоёв компонентов (prop drilling), Redux хранит всё состояние в одном центральном месте, и любой компонент может получить нужные данные напрямую.
Блок "Проблема/Решение":
📎 Основные проблемы без Redux:
🟣 Props drilling — данные передаются через десятки компонентов
🟣 Состояние разбросано по всем компонентам — сложно отследить изменения
🟣 Один компонент обновляется — перерисовывается всё дерево
🟣 Сложная отладка — откуда пришли данные в компонент?
🔴 Как работает Redux?
Store — одно центральное хранилище состояния всего приложения. Это единственный источник правды.
Action — простой объект, описывающий, что произошло:
Reducer — чистая функция, принимающая старое состояние и action, возвращающая новое состояние:
Dispatch — отправляет action в reducer:
Поток данных:
✅ Правильное решение:
- Используйте Redux для сложных приложений с множеством общего состояния
- Применяйте Redux Toolkit для упрощения кода (createSlice вместо reducers)
- Разделяйте состояние на логические слайсы (auth, products, cart)
- Используйте useSelector для получения данных и useDispatch для отправки actions
- Оборачивайте приложение в
❌ Чего избегать:
- Не используйте Redux для простых приложений (используйте useState)
- Не мутируйте состояние напрямую — reducers должны быть чистыми функциями
- Не складывайте в Redux всё подряд — только глобальное состояние
- Не забывайте про мемоизацию селекторов для оптимизации
Когда использовать Redux: большое приложение (100+ компонентов), часто меняющееся состояние, несколько разработчиков, нужна хорошая отладка. 60% React-приложений используют Redux!
🔎 🔎 🔎 🔎 🔄
#⃣ Вопрос
#⃣ Новости
#⃣ База вопросов
Redux — это предсказуемый контейнер состояния для JavaScript-приложений. Вместо передачи данных через множество слоёв компонентов (prop drilling), Redux хранит всё состояние в одном центральном месте, и любой компонент может получить нужные данные напрямую.
Блок "Проблема/Решение":
// Плохо: props drilling - передача через 5+ компонентов
<App user={user}>
<Header user={user}>
<Nav user={user}>
<Profile user={user} />
</Nav>
</Header>
</App>
// Хорошо: Redux - компонент берёт данные напрямую из store
import { useSelector } from 'react-redux';
function Profile() {
const user = useSelector(state => state.user);
return <div>{user.name}</div>;
}
Store — одно центральное хранилище состояния всего приложения. Это единственный источник правды.
Action — простой объект, описывающий, что произошло:
{ type: 'ADD_TODO', payload: 'Купить молоко' }.Reducer — чистая функция, принимающая старое состояние и action, возвращающая новое состояние:
(state, action) => newState.Dispatch — отправляет action в reducer:
dispatch({ type: 'ADD_TODO' }).Поток данных:
User Action → Dispatch → Reducer → New State → UI Update.// Пример: счётчик
const initialState = { count: 0 };
function counterReducer(state = initialState, action) {
switch(action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
}
// В компоненте
function Counter() {
const count = useSelector(state => state.count);
const dispatch = useDispatch();
return (
<div>
<p>{count}</p>
<button onClick={() => dispatch({ type: 'INCREMENT' })}>+</button>
</div>
);
}
- Используйте Redux для сложных приложений с множеством общего состояния
- Применяйте Redux Toolkit для упрощения кода (createSlice вместо reducers)
- Разделяйте состояние на логические слайсы (auth, products, cart)
- Используйте useSelector для получения данных и useDispatch для отправки actions
- Оборачивайте приложение в
<Provider store={store}>- Не используйте Redux для простых приложений (используйте useState)
- Не мутируйте состояние напрямую — reducers должны быть чистыми функциями
- Не складывайте в Redux всё подряд — только глобальное состояние
- Не забывайте про мемоизацию селекторов для оптимизации
Когда использовать Redux: большое приложение (100+ компонентов), часто меняющееся состояние, несколько разработчиков, нужна хорошая отладка. 60% React-приложений используют Redux!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4❤1
#Собес #react #flux #typenoscript
🤔 Middle Frontend разработчик в компанию amoCRM.
Техническое собеседование. Зарплатная вилка: до 200к. Весна 2025. Опыт в резюме: 4 года. Офис. Спрашивали по опыту много вопросов. Был лайвкодинг
💬 Вопросы:
- Можно ли рандомные key в React задать?
- Как правильно использовать useEffect для различных ситуаций?
- Как использовать keys?
- Что такое React и какие ключевые особенности он имеет?
- Что такое utility types в TypeScript?
👉 Все вопросы из этого собеседования (7)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Frontend разработчик в компанию amoCRM.
Техническое собеседование. Зарплатная вилка: до 200к. Весна 2025. Опыт в резюме: 4 года. Офис. Спрашивали по опыту много вопросов. Был лайвкодинг
💬 Вопросы:
- Можно ли рандомные key в React задать?
- Как правильно использовать useEffect для различных ситуаций?
- Как использовать keys?
- Что такое React и какие ключевые особенности он имеет?
- Что такое utility types в TypeScript?
👉 Все вопросы из этого собеседования (7)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
👍5❤1
#Собес #github
🤔 Что такое Git и GitHub?
💬 Кратко:
Git — это система контроля версий, которая позволяет отслеживать изменения в коде, возвращаться к старым версиям и работать над проектом совместно с другими разработчиками. GitHub — это платформа, где можно хранить код в облаке, делиться им и управлять проектами с помощью Git. Вместе они помогают эффективно работать над проектом в команде.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое Git и GitHub?
💬 Кратко:
Git — это система контроля версий, которая позволяет отслеживать изменения в коде, возвращаться к старым версиям и работать над проектом совместно с другими разработчиками. GitHub — это платформа, где можно хранить код в облаке, делиться им и управлять проектами с помощью Git. Вместе они помогают эффективно работать над проектом в команде.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍6❤1
#course #тесты #тренажер
📚 JavaScript Тесты
Курс предназначен для проверки знаний JavaScript и подготовки к собеседованиям на позицию JavaScript-разработчиков!
Перейти к материалу
👉 База вопросов 👉 Новости
📚 JavaScript Тесты
Курс предназначен для проверки знаний JavaScript и подготовки к собеседованиям на позицию JavaScript-разработчиков!
Перейти к материалу
👉 База вопросов 👉 Новости
👍2
Forwarded from YeaHub
[Версия 1.2.1] - Обновление платформы
Мы продолжаем развивать YeaHub, чтобы сделать обучение ещё удобнее, эффективнее и интереснее. В этом обновлении — важные и долгожданные улучшения 👇
🔹 Аналитика платформы
Нам важно понимать, какие вопросы вызывают наибольшие сложности у тех, кто готовится к собеседованиям, поэтому мы начали собирать расширенную статистику.
Какой вопрос самый сложный в нашем тренажёре? Какие навыки наиболее востребованы? Какие темы чаще всего встречаются на реальных собеседованиях? И многое другое — всё это теперь доступно благодаря обновлённой аналитике. Аналитика (после авторизации)
🔹 Обучение и менторы
Вы должны знать героев, которые помогают делать платформу лучше. Это менторы, которые вместе со своими учениками развивают YeaHub, давая бесценный опыт работы над реальным продуктом.
А также крутые эксперты, которые повышают качество контента и помогают нам расти. Все менторы
🔹 Записи собеседований
Мы расширяем партнёрства! Нам важно собрать всё самое полезное в одном месте.
Теперь у нашего партнёра с закрытым чатом собеседований появился отдельный информативный лендинг — удобно, структурировано и всегда под рукой. Записи собесов
🔹 Исправления и улучшения
Мы учли вашу обратную связь: исправили баги, улучшили интерфейс и сделали работу с платформой ещё комфортнее 🧠
🔥 Скоро
1. Парсер навыков и ключевых слов с HH
2. Сервис Лайвкодинга с реальными задачами с собеседований
👉 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru
#release #news #update #yeahub
Мы продолжаем развивать YeaHub, чтобы сделать обучение ещё удобнее, эффективнее и интереснее. В этом обновлении — важные и долгожданные улучшения 👇
🔹 Аналитика платформы
Нам важно понимать, какие вопросы вызывают наибольшие сложности у тех, кто готовится к собеседованиям, поэтому мы начали собирать расширенную статистику.
Какой вопрос самый сложный в нашем тренажёре? Какие навыки наиболее востребованы? Какие темы чаще всего встречаются на реальных собеседованиях? И многое другое — всё это теперь доступно благодаря обновлённой аналитике. Аналитика (после авторизации)
🔹 Обучение и менторы
Вы должны знать героев, которые помогают делать платформу лучше. Это менторы, которые вместе со своими учениками развивают YeaHub, давая бесценный опыт работы над реальным продуктом.
А также крутые эксперты, которые повышают качество контента и помогают нам расти. Все менторы
🔹 Записи собеседований
Мы расширяем партнёрства! Нам важно собрать всё самое полезное в одном месте.
Теперь у нашего партнёра с закрытым чатом собеседований появился отдельный информативный лендинг — удобно, структурировано и всегда под рукой. Записи собесов
🔹 Исправления и улучшения
Мы учли вашу обратную связь: исправили баги, улучшили интерфейс и сделали работу с платформой ещё комфортнее 🧠
1. Парсер навыков и ключевых слов с HH
2. Сервис Лайвкодинга с реальными задачами с собеседований
👉 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru
#release #news #update #yeahub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1