React
2.82K subscribers
299 photos
124 videos
14 files
356 links
Подборки по React js и все что с ним связано. По всем вопросам @evgenycarter
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React + Typescript

Вы можете использовать `typeof` для типизации предполагаемых типов

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет React 💡

Используйте строковые литералы + тип union в typescript для указания точных строковых значений в props

#react

✍️ @React_lib
Самый быстрый способ передачи state в JavaScript

В приложениях Redux с серверным рендерингом часто приходится передавать state магазина с сервера на клиент. Передача больших state может быть медленной, поэтому в 2019 году Хенрик Йоретаг провел бенчмаркинг трех подходов, чтобы определить наиболее производительный способ:

// "Plain object":
window.__STATE__ = {"foo":"bar"}

// "Invalid mime type":
<script type="mime/invalid" id="myState">{"foo":"bar"}</script>
window.__STATE__ = JSON.parse(window.myState.innerHTML)

// "Just parse":
window.__STATE__ = JSON.parse("{\"foo\":\"bar\"}")


https://calendar.perfplanet.com/2023/fastest-way-passing-state-javascript-revisited/

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Как сделать контекстно-ориентированные хуки для запросов в React

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Быстрый совет по React

Преобразование данных в useEffect.

Делаем это во время рендеринга ↓

#react

✍️ @React_lib
⚛️ useEffect становится проще в React, когда вы перестаете использовать его для:

1. Выведения/вычисления нового состояния.
2. Инициализации состояния на основе props.
3. Получения данных.

Вместо этого:
1. Делайте это в рендере.
2. Инициализируйте состояние в useState.
3. Используйте либо обработчики событий, либо react-query для этого.

#react

✍️ @React_lib
Дублирование JSX - верный признак того, что вам нужно создать компонент.

Дублирование логики в компонентах - верный признак того, что вам, возможно, нужно создать пользовательский хук.

Обратите внимание на слово *может*

#react

✍️ @React_lib
Полиморфизм в React: 2 паттерна, которые нужно знать

Независимо от того, создаете ли вы библиотеку или разрабатываете React-компоненты для своих нужд, есть один прием, который вам необходимо знать: полиморфизм. Это когда один элемент может принимать несколько форм, например, когда кнопка может выступать в роли ссылки. При правильном использовании это может избавить вас от необходимости поддерживать множество вариантов компонентов, одновременно предоставляя пользователям необходимую гибкость.

В этом тексте я покажу вам, как использовать два наиболее известных способа реализации полиморфизма в React: паттерны "as" и "asChild".

https://www.bekk.christmas/post/2023/1/polymorphism-in-react

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Как правильно использовать useCallback в React

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Знали ли вы, что можно использовать пересечение типов для легкого расширения нативных свойств элементов в React

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Как типизировать обобщенные компоненты в React с помощью TypeScript

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Знаете ли вы, как и когда использовать flushSync в React?

Используйте flushSync, чтобы принудительно выполнить немедленный рендеринг обновлений, обходя обычную пакетную отрисовку.

Полезно при интеграции с сторонним кодом, таким как браузерные API или UI-библиотеки.

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Как работает процесс рендеринга в React

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React: Используйте кастомный хук для управления состояниями массивов в ваших компонентах.

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React: Если вам нужно импортировать серверный компонент в клиентском компоненте, передайте его как prop (children) ↓

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Одной из самых сложных вещей для меня при изучении React была разделение ответственности.

Когда стоит вынести JSX в новые компоненты? Когда создавать кастомные хуки?
Как можно абстрагировать слой данных от представления?

Вот короткое видео о том, как это сделать

#react

✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
Избегайте отслеживания изменений ref с помощью useEffect() в React.

Вместо этого используйте функцию обратного вызова ref.

#react

✍️ @React_lib
Подборка библиотек React

React существует уже довольно давно. С тех пор вокруг этой библиотеки, основанной на компонентах, сформировалась хорошо развитая, но зачастую перегруженная экосистема библиотек. Разработчикам, приходящим из других языков программирования или библиотек/фреймворков, часто бывает сложно разобраться во всех библиотеках для создания веб-приложений с использованием React.

В своей основе React позволяет создавать интерфейсы, управляемые компонентами, с помощью функциональных компонентов. Он включает встроенные решения, такие как React Hooks для локального состояния, побочных эффектов и оптимизации производительности. Но, в конце концов, здесь вы работаете только с функциями (компонентами и хуками) для создания пользовательского интерфейса.

Starting a new React Project
Package Manager for React
React State Management
React Data Fetching
Routing with React Router
CSS Styling in React
React UI Libraries
React Animation Libraries
Visualization and Chart Libraries in React
Form Libraries in React
React Type Checking
Code Structure in React
React Authentication
React Backend
React Database
React Hosting
Testing in React
React and Immutable Data Structures
React Internationalization
Rich Text Editor in React
Payments in React
Time in React
React Desktop Applications
File Upload in React
Mails in React
Drag and Drop
Mobile Development with React
React VR/AR
Design Prototyping for React
React Component Documentation

✍️ @React_lib