React
2.84K subscribers
304 photos
127 videos
14 files
360 links
Подборки по React js и все что с ним связано. По всем вопросам @evgenycarter
Download Telegram
Довольно круто, что архитектура React Fiber позволяет избежать переполнения стека

Этот рекурсивный компонент обычно переполняется
«Maximum call stack size exceeded».

После этого PR он больше не будет переполняться

#react

✍️ @React_lib
👍4🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React + Typescript

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

#react

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

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

#react

✍️ @React_lib
👍2
Самый быстрый способ передачи 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
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Как сделать контекстно-ориентированные хуки для запросов в React

#react

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

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

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

#react

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

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

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

#react

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

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

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

#react

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

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

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

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

#react

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

#react

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

#react

✍️ @React_lib
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ React useEffect vs useLayoutEffect

#react

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

#react

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

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

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

#react

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

#react

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

#react

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

#react

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

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

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

#react

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

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

#react

✍️ @React_lib
👍2