React JS
17.6K subscribers
550 photos
59 videos
5 files
626 links
React программирование

@haarrp - admin

@itchannels_telegram - 🔥лучшие ит-каналы

@javascriptv - продвинутый javascript

@programming_books_it - бесплатные it книги

@ai_machinelearning_big_data - ml

№ 5037566384
Download Telegram
🖥 React 19 и Forget вводят новый стандарт производительности

Недавно команда React объявила, что их новая разработка — компилятор React (внутреннее название «Forget») — больше не является экспериментальным проектом. Это компилятор, который конвертирует код приложений на React в оптимизированный JavaScript код. За счёт этого достигается автоматическое ускорение работы приложений.

Также разработчики анонсировали React 19 — следующую большую версию популярной библиотеки для создания пользовательских интерфейсов.

В React 19 появятся такие новые возможности как Actions (ранее — Server Actions), Asset Loading и поддержка Web Components.
Asset Loading позволит интегрировать загрузку различных ресурсов (стилей, шрифтов, скриптов) с механизмом Suspense. Это даст возможность гибко управлять отображением интерфейса.

А функция Document Metadata позволит манипулировать рендером метаданных страницы (например, мета-тегов, описанных для SEO). Их можно будет отрендерить в любом месте дерева компонентов, как на клиенте, так и на сервере. Раньше метаданные можно было задать только в корневом компоненте.

Больше информации о React 19 и компиляторе будет анонсировано на конференции React Conf 2024, которая пройдёт 15-16 мая в Хендерсоне, Невада, США. Организаторы ожидают большой наплыв посетителей и уже ввели лотерею на получение билетов.

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29❤‍🔥522😱2
🖥 Работа с коллекциями в JSX

В работе с коллекциями элементов в JSX по большей части нет ничего особенного.
С другой стороны, задача обработки списков элементов настолько частая, что будет не лишним её обсудить отдельно.

На скрине приведён типичный код, в котором коллекция генерируется прямо в том месте, куда и подставляется. Здесь можно снова увидеть, что внутрь JSX через {} вложено выражение, внутри которого опять появляется JSX-код. Как правило, рекурсия на этом заканчивается. Если нужна более сложная обработка, то имеет смысл вынести генерацию коллекции в метод компонента и вызывать его внутри render. Например, ниже выделена функция renderList(), которая формирует список для отрисовки:
class List extends React.Component {
renderList = (data) => {
return data.map(item => <li>{item.name}</li>);
}

render() {
const { data } = this.props;

return (
<ul>
{this.renderList(data)}
</ul>
);
}
}


Проп key
Для повышения эффективности, React настоятельно рекомендует идентифицировать каждую генерируемую строку коллекции. Связано это с механизмом, который производит изменения в DOM.
Генерируя коллекцию элементов в JSX, нужно обязательно проставлять уникальный проп key, который не меняется при повторной генерации коллекции.

Чаще всего с этой задачей не возникает проблем, так как у любой сущности, с которой мы работаем, есть свой идентификатор (например, primary key из базы данных).
class List extends React.Component {
render() {
const { data } = this.props;

return (
<ul>
{data.map((item) => <li key={item.id}>{item.name}</li>)}
</ul>
);
}
}

const items = [
{ name: 'first', id: 1 },
{ name: 'second', id: 2 }
];

const mountNode = document.getElementById('react-root');
const root = ReactDOM.createRoot(mountNode);
root.render(<List data={items} />);


📎 Читать подробнее

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥33🔥3👎2
🖥 Современный подход к разработке с использованием Next.js

Использование традиционных подходов и инструментов разработки приводит к трудностям в достижении эффективной изоляции компонентов. По мере усложнения приложения, управление и повторное использование компонентов в различных проектах становится все более сложной задачей.

Здесь на помощь приходит Bit, предлагая современное и эффективное решение. Bit — это система сборки, предназначенная для создания составного (композитного) программного обеспечения. Используя Bit, вы можете создавать компоненты как независимые фрагменты кода, которые можно совместно использовать и которыми можно обмениваться через удаленный хостинг компонентов.

Именно про Bit в связке с Next.js и говорится в этой статье
Ну и про React само собой, рекомендую к прочтению)

📎 Статья

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥21
🖥 Хук дня — 'use client'

'use client' позволяет отметить, какой код выполняется на клиенте.
Добавьте 'use client' в верхней части файла, чтобы отметить модуль и его транзитивные зависимости как клиентский код.

Когда файл, помеченный директивой 'use client', импортируется из серверного компонента, совместимые бандлеры будут рассматривать импорт модуля как границу между кодом, выполняемым на сервере, и кодом, выполняемым на клиенте.

Будучи зависимостями RichTextEditor, formatDate и Button также будут оцениваться на клиенте, независимо от того, содержат ли их модули директиву 'use client'. Обратите внимание, что один модуль может оцениваться на сервере при импорте из серверного кода и на клиенте при импорте из клиентского кода.


Некоторые нюансы

'use client' должно находиться в самом начале файла, выше любого импорта или другого кода (комментарии допускаются). Они должны быть написаны с одинарными или двойными кавычками, но не с обратными знаками.

Если модуль 'use client' импортируется из другого клиентского модуля, директива не имеет силы.

Если модуль компонента содержит директиву 'use client', то любое использование этого компонента гарантированно является клиентским компонентом. Однако компонент может быть оценен на клиенте, даже если он не содержит директивы 'use client'.
Дополнение: компонент считается клиентским, если он определен в модуле с директивой 'use client' или является транзитивной зависимостью модуля, содержащего директиву 'use client'. В противном случае он является серверным компонентом.

Код, помеченный для использования клиентом, не ограничивается компонентами. Весь код, входящий в поддерево модулей Client, отправляется клиенту и выполняется им.

Когда модуль, работающий с сервером, импортирует значения из модуля 'use client', эти значения должны быть либо компонентами React, либо поддерживаемыми сериализуемыми значениями prop для передачи в клиентский компонент. При любом другом варианте использования будет возникать исключение.

📎 Читать подробнее

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍944❤‍🔥2🥰1
🖥 Создание сложного веб-приложения с помощью React JS и Tailwind

Держите годный контент)
В этом видео описано создание веб-приложения Brainwave с использованием React и Tailwind CSS. Приложение включает в себя различные элементы, реагирующие на курсор, навигационную панель, градиентные границы, схемы и другие элементы.

Что происходит в видео?
00:04:24 — Настройка
00:22:07 — Header
00:44:28 — Компонент раздела оглавления
01:26:00 — Раздел о преимуществах
01:41:30 — Раздел о сотрудничестве
02:30:35 — Раздел о ценах
02:51:30 — Раздел roadmap
03:05:20 — Footer
03:10:10 — Деплой

📎 Кликабельный план видео
📎 Видео

Enjoy)
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍245🔥4
🖥 Как создать QR-код по строке и направить его пользователю на скачивание?

Вот так звучит реальный кейс, давайте подробнее.
При нажатии на кнопку (onClick событие) должен создаваться QR-код (превью для пользователя не нужно) по строке (рандомно генерирующийся набор символов) и отправляться на скачивание пользователю в виде png-картинки.
Как же это можно реализовать?

Например, можно сделать так:
import QRCode from "https://esm.sh/qrcode";

function download(dataurl, filename) {
const link = document.createElement("a");

link.href = dataurl;
link.download = filename;
link.click();

document.removeElement(link);
}

QRCode.toDataURL("I am a pony!", function (err, qrCodeImageDataUrl) {
console.log(qrCodeImageDataUrl);

download(qrCodeImageDataUrl, "qrcode.png");
});


📎 Затестить, как работает, можно тут

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍8🔥4
🖥 Как создать локальную среду React с помощью Vite

Держите годный контент!
В этой статье вы узнаете, как создать локальную среду с помощью Vite, инструмента сборки и сервера разработки, разработанного для быстрой и эффективной работы.

В процессе рассматриваются:
— Пошаговые инструкции по созданию проекта Vite
— Удаление шаблона по умолчанию
— Создание простых компонентов React
— Добавление основных стилей CSS.
— Развертывание проекта с помощью Netlify (необязательно)
— К концу этого руководства у вас будет четкое представление о создании локальной среды React с помощью Vite

Уверен, будет полезно, а вот ссылка:
📎 Статья

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3❤‍🔥21🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ React Morph Clock

Оригинальные часы, созданные из svg-картинки на React.

#js #react

https://codepen.io/Siddharth11/pen/MjjdyW

@react_tg
👍19❤‍🔥43
🖥 Вопросы с собеседования на фронтенд разработчика React.js

Держите отличную подборку 🔥
Здесь собраны самые популярные вопросы, задаваемые на собеседованиях front-end разработчиков на React.js.
Тематика вопросов включает в себя как основы JavaScript и веб-технологий так и глубокое понимание работы React.js и смежных технологий (Redux, MobX и прочего).

К каждому вопросу приведён подробный ответ в выпадающем меню

📎 Ссылка

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤‍🔥53
🖥 100 вопросов по React для подготовки к собеседованию

Держите отличную подборку вопросов, здесь покрываются основные темы React:

Основы React.
— JSX (JavaScript XML)
— Компоненты и их жизненный цикл.
— Пропсы (props) и состояние (state).
— События и обработчики событий.

Компоненты и их типы
— Функциональные компоненты.
— Классовые компоненты.
— Хук состояния (useState).
— Хук эффекта (useEffect).
— Хук контекста (useContext).

Роутинг
— React Router — библиотека для маршрутизации в React-приложениях.
— Создание маршрутов и навигация.
— Пропсы маршрутов и параметры URL.

Состояние приложения
— Redux — библиотека для управления состоянием приложения.
— Создание хранилища (store), действий (actions) и редукторов (reducers).
— Middleware и асинхронные действия.

Взаимодействие с API
— Fetch API для выполнения HTTP-запросов.
— Axios — библиотека для выполнения HTTP-запросов.
— Работа с асинхронными запросами и обработка ошибок.

...и остальные темы

📎 100 вопросов

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍274❤‍🔥3
🌟 Анатомия HTMX

Держите полезную статью)
По данным 2023 JavaScript Rising Stars библиотека htmx заняла 2 место в разделе Front-end Frameworks (1 место вполне ожидаемо принадлежит React) и десятое место в разделе Most Popular Projects Overall.

htmx — это библиотека, которая предоставляет доступ к AJAX, переходам CSS, WebSockets и Server Sent Events прямо из HTML через атрибуты, что позволяет создавать современные пользовательские интерфейсы (насколько сложные — другой вопрос), пользуясь простотой и мощью гипертекста. На сегодняшний день у библиотеки почти 30 000 звезд на Github. Удивительно, что до такого решения додумались только сейчас, учитывая, что весь функционал был доступен уже 10 лет назад (вы сами убедитесь в этом, когда изучите исходный код htmx).

И в этой статье разбирается, как htmx работает, рекомендую
📎 Статья

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍6🔥3❤‍🔥2