React JS
前往频道在 Telegram
React программирование @haarrp - admin @itchannels_telegram - 🔥лучшие ит-каналы @javascriptv - продвинутый javascript @programming_books_it - бесплатные it книги @ai_machinelearning_big_data - ml № 5037566384
显示更多📈 Telegram 频道 React JS 的分析概览
频道 React JS (@react_tg) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 16 401 名订阅者,在 技术与应用 类别中位列第 7 691,并在 俄罗斯 地区排名第 40 016 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 16 401 名订阅者。
根据 29 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -131,过去 24 小时变化为 -11,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 10.52%。内容发布后 24 小时内通常能获得 5.60% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 725 次浏览,首日通常累积 918 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 9。
- 主题关注点: 内容集中在 javascript, github, css, интерфейс, браузер 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“React программирование
@haarrp - admin
@itchannels_telegram - 🔥лучшие ит-каналы
@javascriptv - продвинутый javascript
@programming_books_it - бесплатные it книги
@ai_machinelearning_big_data - ml
№ 5037566384”
凭借高频更新(最新数据采集于 30 八月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
16 401
订阅者
-1124 小时
-47 天
-13130 天
帖子存档
16 403
🖥 Годный ролик с созданием 6 проектов на ReactJS
📎 Вот пересказ содержимого от YaGPT
В ролике автор касается таких тем, как:
⏩Передача индекса и корректного варианта ответа в компонент result.
⏩Преобразование ответа в формат JSON и извлечение данных.
⏩Отображение вопросов и вариантов ответов при помощи списка и функции для обработки кликов на вариантах.
⏩Рендеринг пользователей, добавление их в список приглашений и удаление из него.
В целом ролик очень полезный и неплохо помогает попрактиковаться и прокачать свой React
@react_tg
16 403
🔥Подборка лучших обучающих каналов для программистов.
➡️ Делитесь с коллегами и cохраняйте себе, чтобы не потерять
🖥 Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend
⚡Машинное обучение
Machine Learning - полезные статьи новости гайды и разбор кода
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
🚀 Data Science
Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data
🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go
#️⃣C#
С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа
🐍 Python
Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги
☕ Java
Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги
🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат
💻 C++
C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии
💥 Хакинг Kali Linux
Kali linux
linux_kal - kali чат
Информационная безопасность
🐧 Linux
Linux academy
🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов
📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки
🇬🇧 Английский для программистов
🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence
🔥 DevOPs
Devops для программистов
Книги Devops
🌟 Docker/Kubernets
Docker
Kubernets
📓 Книги
Библиотеки Книг для программситов
💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend
16 403
🖥 NLUX — библиотека ReactJS для создания разговорных пользовательских интерфейсов
В современном мире взаимодействие с компьютерами и приложениями становится все более естественным и удобным благодаря использованию разговорных интерфейсов и искусственного интеллекта. Однако, интеграция такого функционала в веб-приложения может стать вызовом для разработчиков.
В этом может помочь библиотека NLUX (Natural Language User Experience), предоставляющая инструменты для создания разговорных пользовательских интерфейсов в приложениях на ReactJS.
NLUX революционизирует интеграцию разговорного искусственного интеллекта в приложения на ReactJS. Представляя собой двойное предложение, то есть не только компоненты/хуки React, но и автономную библиотеку для JavaScript, библиотека NLUX разработана для внедрения функциональности чат-ботов, управляемых искусственным интеллектом, в веб-приложения.
NLUX выделяется своей легкостью интеграции и способностью обеспечивать пользователям интеллектуальные взаимодействия на естественном языке, что делает ее мощным инструментом для улучшения вовлеченности и удовлетворенности пользователей. Библиотека также позволяет нам настраивать личность бота, используя естественные языковые подсказки.
📁 Подробнее про NLUX на Хабре
🖥 GitHub
@react_tg
16 403
🖥 Решение проблемы с получением значения поля в ReactJS
Если в двух словах, то для надежного получения значения из поля ввода в
React используйте управляемые компоненты. Привяжите значение поля к состоянию с помощью атрибута value и обновляйте его при помощи обработчика события onChange. Принцип работы приведен ниже:
class InputComponent extends React.Component {
state = { value: '' };
handleValueChange = (event) => this.setState({ value: event.target.value });
render() {
// Заметьте взаимодействие состояния и поля ввода — вот так все и работает!
return <input value={this.state.value} onChange={this.handleValueChange} />;
}
}
В этом коде создается текстовое поле ввода, значение которого привязано к состоянию компонента.
@react_tg16 403
⁉️ Только начинаешь свой путь в IT, и для трудоустройства не хватает реального опыта работы?
Знакомая история? Тогда давай к нам! 🚀
PREAX — онлайн-стажировка для frontend-разработчиков.
Помогаем накопить реальный 💪 опыт, формируем кадровый резерв для работодателей и привлекаем лучших к коммерческим заказам.
ЧТО ВНУТРИ?
🔖 Пять больших проектов. Пополнишь портфолио крутыми кейсами.
🔖 Спринты и дедлайны. Научишься рассчитывать время и укладываться в сроки.
🔖 Работа с легаси. Исправишь ошибки, оптимизируешь код и сделаешь рефакторинг.
🔖 Пачка код-ревью. Поделишься опытом и увидишь, как сделать свой код еще лучше.
🔖 Поддержка сообщества. Сможешь задать вопрос и получить совет, если нужна помощь.
🔖 Новый стек технологий. Закрепишь на практике и расширишь стек технологий.
🔖 Гибкий график. Сможешь выстраивать нагрузку, легко совмещая её с работой или учебой.
В итоге получишь реальный опыт работы в команде!
Попробуй! 1-й спринт — 🆓 БЕСПЛАТНО!
Реклама, ООО «Преакс Плэтформ», ОГРН 1237700372755
16 403
🖥 Обработка имён классов в React 🖥
Интерактивные элементы UI имеют более одного состояния отображения. Например, модальное окно может быть открыто или закрыто, а переключатель — включён или выключен. Обычно эти состояния меняют с помощью классов.
Работая напрямую с DOM, мы можем использовать
classList, который содержит удобные методы для добавления и удаления классов. В React из коробки нет никаких удобств. Свойство className — это всего лишь строка, а строки неудобны для обработки:
class Button extends React.Component {
render () {
const { isPressed, isHovered, label } = this.props;
let btnClass = 'btn';
if (isPressed) {
// Приходится конкатенировать классы
btnClass += ' btn-pressed';
} else if (isHovered) {
btnClass += ' btn-over';
}
return <button className={btnClass}>{label}</button>;
}
};
Для решения этой задачи создатели React рекомендуют использовать пакет 'classnames'. Принцип его работы прост. Вместо манипулирования строчкой напрямую, мы формируем правильный объект, который уже будет преобразован в строку:
import cn from 'classnames';
class Button extends React.Component {
render () {
const { isPressed, isHovered, label } = this.props;
// Значение — это `true` или `false`
// При значении `true` класс включен, при `false` — выключен
// `'btn'` — это класс, который будет подставлен в любом случае
const btnClass = cn('btn', {
'btn-pressed': isPressed,
'btn-over': !isPressed && isHovered,
});
return <button className={btnClass}>{label}</button>;
}
};
Подставим конкретные значения:
const btnClass = cn('btn', {
'btn-pressed': false,
'btn-over': true,
});
console.log(btnClass); // 'btn btn-over'
Функция cn() принимает на вход любое количество аргументов. Если аргумент имеет строковой тип, то он считается обязательным классом. Если это объект, тогда работает логика, описанная выше:
const btnClass = cn('btn', 'another-class', {
'btn-pressed': isPressed,
'btn-over': !isPressed && isHovered,
});
@react_tg16 403
🖥 45+ IT-компаний ищут стажёров и джунов
Карьерные форумы "Найти IT" — это шанс пообщаться с топовыми компаниями и получить оффер. Среди работодателей будут Сбер, Яндекс, Kaspersky, Avito и многие другие.
Что вас ждёт:
🔹 Мастер-классы, кейсы и Q&A-сессии.
🔹 Розыгрыш призов среди участников.
🔹 Обширное пространство для общения и обмена опытом.
🔹 Карьерные консультации от HR-ов.
Участие бесплатное!
Выбирайте город и регистрируйтесь👇🏻
📍 Москва — 6 марта
📍 Санкт-Петербург — 6 апреля
📍 Новосибирск — 10 апреля
16 403
💡Обрабатывай асинхронные ошибки как профи
Асинхронные операции, такие как получение данных из внешних API или обработка взаимодействия с пользователем требуют аккуратной обработки ошибок.
🔵
Try-Catch с Async/Await
— надежное решение для обработки ошибок в асинхронном коде. Инкапсулируя асинхронные операции внутри try блока, разработчики получают возможность корректно перехватывать и обрабатывать ошибки, которые могут возникнуть во время выполнения.
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching data:', error);
throw error; // Re-throw the error to propagate it further
}
}
здесь try-catch блок обрабатывает наш асинхронный код, что позволяет нам фиксировать и регистрировать ошибки, возникающие во время выборки данных. Повторно выдавая ошибку, мы гарантируем ее распространение дальше по стеку вызовов, что облегчает комплексную обработку ошибок во всем приложении.
🔵Promise.catch()
Promise.catch() метод служит надежным защитником от асинхронных ошибок, предлагая краткое решение для обработки отклонений. Добавляя предложение .catch() в нашу цепочку обещаний, разработчики могут перехватывать и обрабатывать ошибки, возникающие во время выполнения асинхронных операций.
fetch('https://api.example.com/data')
.then((response) => response.json())
.then((data) => {
// Process the data
})
.catch((error) => {
console.error('Error fetching data:', error);
// Display a user-friendly error message
alert('An error occurred while fetching data.');
});
здесь .catch() перехватывает любые ошибки, возникающие во время обработки данных, позволяя разработчикам регистрировать ошибки в целях отладки и предоставлять пользователям понятное сообщение.
В общем, обработка ошибок, особенно асинхронных, в приложениях React требует многогранного подхода.
🔤А какой вариант обработки ошибок близок именно вам? Было бы интересно услышать
@react_tg16 403
Как разрабатывать CLI на Node.js?
Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
1. Введение в CLI-разработку
2. Основы работы с Node.js
3. Создание интерфейса CLI
4. Обработку пользовательского ввода
5. Взаимодействие с файловой системой и внешними API
6. Тестирование и отладку
7. Лучшие практики и советы разработки CLI
⏲ Встречаемся 6 марта в 20:00 мск в рамках курса «JavaScript Developer. Professional». Доступна рассрочка на обучение!
Пройдите небольшой тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/FR84/?erid=LjN8KM6tN
16 403
💻 Проверь свои скиллы — задача по написанию hook для загрузки данных
На первой итерации решение может выглядеть как-то так:
function useFetch(url) {
const [data, setData] = useState(null);
useEffect(() => {
fetch(url)
.then((res) => res.json())
.then((respData) => setData(respData));
}, []);
return data;
}
В этом коде не хватает зависимости. Если url изменится, то запроса данных не произойдет.
Дальше код может стать таким:
function useFetch(url) {
const [data, setData] = useState(null);
useEffect(() => {
setData(null); // не забыть сбросить данные перед загрузкой
fetch(url)
.then((res) => res.json())
.then((respData) => setData(respData));
}, [url]); // <-- не забыть зависимость
return data;
}
На этом этапе можно остановиться, и подумать, как улучшить этот hook.
Пропустим ещё несколько итераций, и финальный код, который можно считать неплохим решением, выглядит так:
function useFetch(url) {
const [data, setData] = useState(null);
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
// флаг отмены
let cancelled = false;
setIsLoading(true);
setData(null);
setError(null);
fetch(url)
.then((res) => res.json())
.then((respData) => {
if (!cancelled) setData(respData);
})
.catch((e) => {
if (!cancelled) setError(e);
})
.finally(() => {
if (!cancelled) setIsLoading(false);
});
return () => {
// выставим признак того, что запрос отменен
cancelled = true;
};
}, [url]);
return [data, isLoading, error];
}
Эта задачка позволяет проверить понимание устройства рендеринга React, как устроено хранение состояния, когда происходят перерисовки, как заставить компонент перерисоваться в ответ на асинхронное событие, как устроена "очистка (cleanup) эффекта", как работают сайд-эффекты.
@react_tg16 403
💡Как использовать forwardRef с generic компонентами
Одно из ограничений forwardRef в том, что он отключает выведение типа для generic компонентов. Например:
const Table = <T,>(
props: {
data: T[];
renderRow: (row: T) => React.ReactNode;
},
ref: React.ForwardedRef<HTMLTableElement>
) => {
/** --snip-- */
};
const ForwardReffedTable = React.forwardRef(Table);
<Table
data={["a", "b"]}
renderRow={(row) => { // Тип выводится: row: string
return <tr>{row}</tr>;
}}
/>;
<ForwardReffedTable
data={["a", "b"]}
renderRow={(row) => { // Тип не выводится: row: unknown
return <tr>{row}</tr>;
}}
/>;
Чтобы исправить выведение типа для generic компонентов, можно создать утилитарную функцию для вызова forwardRef с правильными типами:
function fixedForwardRef<T, P = {}>(
render: (props: P, ref: React.Ref<T>) => React.ReactNode
): (props: P & React.RefAttributes<T>) => React.ReactNode {
return React.forwardRef(render) as any;
}
// Вызов forwardRef с правильным выведением типа:
const ForwardReffedTable = fixedForwardRef(Table);
🔗 Подробнее
@react_tg16 403
Реализация React Query в веб-приложении
В этом уроке рассмотрим, как интегрировать React Query в базовое веб-приложение.
React Query — мощная библиотека для управления, кэширования и синхронизации состояния сервера в приложениях React. Мы создадим простое приложение, получающее данные из API с открытым исходным кодом, и используем Bootstrap для применения стилей.
Цели проекта
Создать веб-приложение для получения данных из нижеуказанного API с помощью React Query.
📌Читать
@react_tg
16 403
CopilotKit
Вот библиотека с открытым исходным кодом, которая позволяет очень просто интегрировать искусственный интеллект в приложение.
Посмотрите их репозиторий:
🐱 GitHub
CopilotKit возьмет контекст вашего приложения и передаст его в свою инфраструктуру React для создания:
- ИИ-чатботов в приложении
- Текстовые области с поддержкой ИИ
- RAG, вызов функций и интеграция
Библиотека имеет встроенную поддержку LangChain, LangGraph и LangServe. Вы можете использовать их для расширения возможностей движка.
Также в библиотеку встроены нативные UI/UX-компоненты, которые вы можете использовать в своих приложениях:
- CopilotChat
- CopilotSidebar
- CopilotPopup
- CopilotTextarea
Библиотека имеет открытый исходный код. Вы можете размещать ее самостоятельно. Вы можете использовать ее с любым LLM, включая GPT-4.
Этот проект был №2 на HackerNews и ProductHunt. Он был трендом на GitHub.
Эта библиотека работает на любом приложении React, но команда работает над ее расширением.
16 403
«Я💛Фронтенд 2024»: встречаемся 23 марта в Москве и онлайн!
Выступления спикеров, дискуссии с экспертами, новости веба, активности с подарками и, конечно же, нетворкинг — программа будет насыщенной.
Вы сможете послушать доклады крутых специалистов, напрямую задать им свои вопросы, познакомиться и пообщаться с другими участниками сообщества.
Регистрируйтесь и приходите!
Если не сможете быть офлайн, всё равно регистрируйтесь — будет онлайн-трансляция.
Реклама. ООО "Яндекс". ИНН 7736207543
16 403
Огромный выбор инструментов для веб-разработки.
Автор классифицировал их на 30 категорий и представил несколько десятков сервисов в каждой категории.
Таким образом, можно найти решение практически для любой задачи.
Этот список включает в себя шрифты, иконки, палитры, стоковое аудио, шаблоны кода, инструменты для дизайна, JS-фреймворки и многое другое. Все это делает эту подборку незаменимой шпаргалкой для любого веб-разработчика.
👀 Смотреть
16 403
🚀Попробуйте TextSelection - #React TS хук, который отслеживает выделение текста пользователем и его положение на экране!
Идеально подходит для создания интуитивно понятных функций пользовательского интерфейса, таких как всплывающая подсказка "Поделиться", подобно Medium. ✨
▪ Демо: http://grayscal.es/hooks/use-text-selection
▪Код: https://gist.github.com/KristofferEriksson/8acb9b3eb241507eb0f6232938bf4ec7
@react_tg
16 403
"У России три пути: рейвы, водка и айти" — к чему готовиться, если ты выбрал последний вариант
Представь, ты решил заработать денег и стать разработчиком.
Из каждого же утюга и ютуб-канала доносится, что ровные пацаны залетают в айти с двух ног. Нужно просто быстренько пройти курс от крупной онлайн-школы, а через несколько месяцев можно уже уезжать на Бали попивать кокосовую водичку на удаленке с зарплатой 150к+.
И вот ты, зеленый и неумелый, приходишь на один из таких курсов, смотришь видосики, общаешься со своими кураторами раз в неделю, иногда делаешь домашку, а дальше — все, что выше.
Представил? Клево? Теперь давай знакомиться с реальностью.
Что нормально на рынке труда, если ты новичок:
1) Судорожный поиск работы в виде 100 откликов в день, из которых на собеседования тебя позовут дай бог две компании
2) Зарплата 40-60к в первые полгода. Не жди больше. Никогда. Исключения бывают, но редко.
3) Перерасчет каждые полгода и повышение оклада на 20-30%. Но ради этого тебе придется поиграть в “Голодные Игры” и быть готовым к увольнению в любой кризисный момент
Важно понимать: все джуны в IT - это убыток для компаний, но есть ребята из SaintCode, которые честно тебе расскажут, как обстоят дела на рынке и максимально подготовят к поиску работы.
Студенты там занимаются по шесть часов в день в течение трех месяцев вживую с преподавателем. А еще у них есть домашка, на которую они тратят по 2-3 часа ежедневно. И даже после этого шансы найти работу в лучшем случае составляют 40%.
Короче, SaintCode явно шарят в программировании и наедине с непонятной темой точно тебя не бросят.
Записывайся на пробный урок и готовься пахать — в ближайшее время тебе точно будет не до рейвов
