React Frontend | YeaHub – Telegram
React Frontend | YeaHub
3.37K subscribers
308 photos
4 videos
1 file
530 links
Теория, подготовка к интервью и курсы для React разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #authentication #password #biometrics
🤔 Назовите три метода аутентификации пользователя.

💬 Кратко:

Три метода аутентификации — это биометрия (например, отпечаток пальца), токен (электронное устройство или карта) и пароль. Для повышения безопасности можно использовать двухфакторную аутентификацию, комбинируя два из этих методов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👎3👍1
#trainer #тесты
📚 Тесты для проверки своих знаний по React

Отличная специализированная образовательная платформа, посвященная тестированию знаний в области фронтенд-разработки, с особым акцентом на библиотеку React.

Перейти к материалу

👉 База вопросов 👉 Новости
🔥9👎21👍1
#Собес #react #keys #реакт
🤔 Как использовать keys?

💬 Кратко:

Keys — это уникальные идентификаторы, которые React использует для того, чтобы отслеживать элементы при рендеринге списков. Они помогают React эффективно обновлять только те элементы, которые изменились, а не перерендеривать весь список. Ключи должны быть уникальными среди соседних элементов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍71
#React #JavaScript
🚩 Почему props drilling разрушает вашу архитектуру React?

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>;
}



📎 Основные проблемы без Redux:

🟣 Props drilling — данные передаются через десятки компонентов
🟣 Состояние разбросано по всем компонентам — сложно отследить изменения
🟣 Один компонент обновляется — перерисовывается всё дерево
🟣 Сложная отладка — откуда пришли данные в компонент?


🔴Как работает Redux?

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🔥41
#Собес #react #flux #typenoscript

🤔 Middle Frontend разработчик в компанию amoCRM.

Техническое собеседование. Зарплатная вилка: до 200к. Весна 2025. Опыт в резюме: 4 года. Офис. Спрашивали по опыту много вопросов. Был лайвкодинг

💬 Вопросы:

- Можно ли рандомные key в React задать?

- Как правильно использовать useEffect для различных ситуаций?

- Как использовать keys?

- Что такое React и какие ключевые особенности он имеет?

- Что такое utility types в TypeScript?

👉 Все вопросы из этого собеседования (7)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
👍51
#Собес #github
🤔 Что такое Git и GitHub?

💬 Кратко:

Git — это система контроля версий, которая позволяет отслеживать изменения в коде, возвращаться к старым версиям и работать над проектом совместно с другими разработчиками. GitHub — это платформа, где можно хранить код в облаке, делиться им и управлять проектами с помощью Git. Вместе они помогают эффективно работать над проектом в команде.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍61
#course #тесты #тренажер
📚 JavaScript Тесты

Курс предназначен для проверки знаний JavaScript и подготовки к собеседованиям на позицию JavaScript-разработчиков!

Перейти к материалу

👉 База вопросов 👉 Новости
👍2
Forwarded from YeaHub
[Версия 1.2.1] - Обновление платформы

Мы продолжаем развивать 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
🔥41
#Собес #прототип #объекты #наследование
🤔 Для чего нужен прототип и как присвоить прототип объекту?

💬 Кратко:

Прототип в JavaScript — это объект, от которого другие объекты могут наследовать свойства и методы. Присвоить прототип можно с помощью метода Object.create() или через свойство __proto__. Это позволяет организовать наследование и разделять общие методы и свойства между несколькими объектами.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍6
🖥 TypeScript — как его стоит изучать

Есть важный момент: в реальной работе разработчик использует далеко не весь TypeScript — зачастую лишь 20–30% его возможностей. Поэтому новичку совершенно не обязательно сразу пытаться охватить всю технологию. Это только замедлит процесс, усложнит обучение и снизит эффективность.

К тому же теория без практики даётся тяжело, изолированные примеры часто непонятны, а задачи по TS поначалу кажутся перегруженными. В результате уходит много времени, а прогресс ощущается слабым. Классическое правило 20/80 здесь работает идеально: небольшой, но правильно выбранный набор знаний даёт максимальный результат.

🔹 Этап 1 — База + поверхностное знакомство с продвинутыми темами

На старте важно понять только основу типизации:
- примитивные типы
- type
- interface
- union-типы
- type aliases

И всё! Поверьте, большинство опытных разработчиков не держат в голове сложные типизации событий или утилит — всё это гуглится за 10 секунд.

Главное — практика. Получать ошибки TypeScript, гуглить их, разбираться — именно так и формируется настоящее понимание логики TS.

Что делать на этом этапе?

1. Посмотреть 1–2 курса (любые):
Полный курс TypeScript за час — https://www.youtube.com/watch?v=V7hBejCH1HI

TypeScript с 0 до Профи. Полный курс + Практика — https://www.youtube.com/watch?v=PYWaUwjofJo

2. Сразу начать проект:
Туду-лист, работа с API, калькулятор — неважно. Главное, чтобы был реальный код, а не только теория.

Идеальная длительность этапа — примерно 2 недели.

🔹 Этап 2 — Продвинутые темы (после освоения React, RTK)

Этот этап точно не нужен новичку. Продвинутый TS лучше изучать тогда, когда уже освоен весь React-стек и есть несколько пет-проектов.

Что входит в продвинутую часть?
- Generics
- Utility Types
- Type Guards
- Маппинг типов
- Сложные паттерны типизации

Как изучать?

1. Посмотреть фундаментальный курс:
TypeScript ФУНДАМЕНТАЛЬНЫЙ КУРС от А до Я — https://youtu.be/LWtHl__oEWc?si=JQidflBDL61By3mS

2. Начать решать задачи:
https://bigfrontend.dev/typenoscript
https://github.com/type-challenges/type-challenges

⭐️ Почему так?

Проблема большинства курсов в том, что они вываливают всю информацию сразу. Новичку это не помогает — он просто не может усвоить продвинутые концепции без опыта.

Точно так же, как нет смысла проходить весь React от и до при первом знакомстве, нет смысла полностью изучать TypeScript на старте.

Кстати, начал внедрять такие практики на менторстве. Снова все улучшать и переделывать курсы свои😅

#typenoscript
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3👍2
#Собес #react #flux #typenoscript

🤔 Middle Frontend разработчик в компанию amoCRM.

Техническое собеседование. Зарплатная вилка: до 200к. Весна 2025. Опыт в резюме: 4 года. Офис. Спрашивали по опыту много вопросов. Был лайвкодинг

💬 Вопросы:

- Можно ли рандомные key в React задать?

- Как правильно использовать useEffect для различных ситуаций?

- Как использовать keys?

- Что такое React и какие ключевые особенности он имеет?

- Что такое utility types в TypeScript?

👉 Все вопросы из этого собеседования (7)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
4
#Собес #horizontal_scaling #docker_swarm #kubernetes
🤔 Как масштабировать Docker контейнеры горизонтально?

💬 Кратко:

Для горизонтального масштабирования Docker контейнеров можно использовать Docker Swarm или Kubernetes. В Docker Swarm вы создаете кластер и используете команду docker service scale, чтобы масштабировать количество реплик для сервиса. Например, команда docker service scale myservice=5 увеличит количество реплик сервиса myservice до 5.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1
#repository #практика #проекты #пет
📚 50 проектов для прокачки фронтенда

Мини-сборник из 50 проектов на HTML, CSS и JavaScript — от простых визуальных эффектов до полноценных интерактивных приложений. Каждый проект сопровождается работающей демо-версией и исходным кодом. Отличный способ последовательно улучшать навыки и набивать руку в веб-разработке.

Перейти к материалу

👉 База вопросов 👉 Новости
🔥3
Forwarded from YeaHub
[Версия 1.3.0] - Обновление платформы

Мы продолжаем развивать YeaHub, чтобы сделать обучение ещё удобнее, эффективнее и интереснее. В этом обновлении — важные и давно ожидаемые улучшения 👇

🔹 Навыки и ключевые слова из вакансий HH
Мы запустили сервис, который помогает прокачать резюме с помощью популярных навыков и ключевых слов, встречающихся в вакансиях. Это поможет вам выше ранжироваться в поиске среди кандидатов и увеличит конверсию откликов.
https://yeahub.ru/hh-analytics?page=1&mode=skills&specialization=11

🔹 Исправления и улучшения
Мы учли вашу обратную связь: исправили баги, улучшили интерфейс и сделали работу с платформой ещё комфортнее 🧠

🔥 Скоро
1. Сервис Лайвкодинга с реальными задачами с собеседований

👉 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru

#release #news #update #yeahub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
#Собес #state
🤔 Что произойдет с дочерним компонентом, если поменяется key у родительского компонента?

💬 Кратко:

При изменении key у родительского компонента React интерпретирует это как то, что это совершенно новый компонент. Старый экземпляр компонента и все его дочерние элементы будут полностью размонтированы (вызовутся функции очистки в useEffect), а затем будет смонтирован совершенно новый экземпляр с чистым состоянием. Это мощный инструмент для принудительного сброса состояния компонента.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍5🔥3
👴🏼 Версии React: не будь стариком

Знаете, я недавно поймал себя на мысли, что большинство курсов и видео по React остаются актуальными даже спустя 4–5 лет. По сути, в реальной работе мы продолжаем использовать базовые концепции, и редко встречается применение действительно новых возможностей библиотеки. Не так уж часто увидишь проект, где активно используют серверные компоненты, useId, хуки для форм вроде useFormStatus, или что-то для конкурентного режима, вроде useTransition. Даже изменения в батчинге, появившиеся в React 18, многим знать не обязательно. А про то, что под капотом давно работает Fiber — многие опытные разработчики слышат об этом впервые.

Как правило, любые видео «о новых возможностях React» сводятся к обзорам с примерами на YouTube, а не настоящему использованию всех этих фич в реальных проектах. Даже ролики, которые громко называют «Практика с React 19», на деле оказываются очередным проектом, написанным привычным способом, без каких-либо новых инструментов.

И вот чтобы не оказаться в ловушке, когда через 3–5 лет вы уже сеньор, а в вакансии внезапно требуют «знание React 18!!», а вы даже не знаете, что такое Fiber, — всё-таки нужно изучать нововведения и стараться применять их в работе. Не насильно, не ради галочки, а там, где это действительно имеет смысл. Но важно хотя бы пощупать каждую новую фичу руками — просто чтобы помнить, что такой инструмент существует, и в нужный момент вы могли бы его использовать.

Я всегда удивлялся вакансиям, где восклицательно пишут «Знание ES6!». А потом понял: есть много специалистов, которые годами сидят на одном проекте и не знают, что существуют стрелочные функции, продолжают писать в старом ООП-стиле, мутируют данные — когда давно уже принято писать в функциональном стиле, с иммутабельностью и современным подходом.

Подборка видео:
1) Пишем todo list на React 19 с нуля!
2) Новые хуки useTransition и useDeferredValue в React 18
3) Новый React 19: 7 изменений.
6👍5🔥1
#Собес #react #javanoscript #typenoscript

🤔 Middle Frontend разработчик в компанию Катюша Принт

HR-скрининг. Зарплатная вилка: от 250к. Весна 2025. Опыт в резюме: 4 года. Формат работы: офис или гибрид.

💬 Вопросы:

- Как защитить данные в LocalStorage от стороннего JS?

- Как работают генераторы в JS?

- В чем различия forEach и map?

- Как работает useReducer и когда его использовать вместо useState или Redux?

- Использовал ли didCatch в React?

👉 Все вопросы из этого собеседования (11)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
3👍1
#Собес #docker_image #dockerfile #container
🤔 Что такое Docker image?

💬 Кратко:

Docker image — это исполнимая и легковесная упаковка, которая включает в себя все необходимые компоненты для запуска приложения, включая код, библиотеки и системные зависимости. Docker image используется для создания контейнеров.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍3