This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React + Typescript
Вы можете использовать `
#react
✍️ @React_lib
Вы можете использовать `
typeof
` для типизации предполагаемых типов #react
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет React 💡
Используйте строковые литералы + тип union в typescript для указания точных строковых значений в props
#react
✍️ @React_lib
Используйте строковые литералы + тип union в typescript для указания точных строковых значений в props
#react
✍️ @React_lib
Самый быстрый способ передачи state в JavaScript
В приложениях Redux с серверным рендерингом часто приходится передавать state магазина с сервера на клиент. Передача больших state может быть медленной, поэтому в 2019 году Хенрик Йоретаг провел бенчмаркинг трех подходов, чтобы определить наиболее производительный способ:
https://calendar.perfplanet.com/2023/fastest-way-passing-state-javascript-revisited/
#react
✍️ @React_lib
В приложениях 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
❌ Преобразование данных в useEffect.
✅ Делаем это во время рендеринга ↓
#react
✍️ @React_lib
❌ Преобразование данных в useEffect.
✅ Делаем это во время рендеринга ↓
#react
✍️ @React_lib
⚛️ useEffect становится проще в React, когда вы перестаете использовать его для:
1. Выведения/вычисления нового состояния.
2. Инициализации состояния на основе props.
3. Получения данных.
Вместо этого:
1. Делайте это в рендере.
2. Инициализируйте состояние в useState.
3. Используйте либо обработчики событий, либо react-query для этого.
#react
✍️ @React_lib
1. Выведения/вычисления нового состояния.
2. Инициализации состояния на основе props.
3. Получения данных.
Вместо этого:
1. Делайте это в рендере.
2. Инициализируйте состояние в useState.
3. Используйте либо обработчики событий, либо react-query для этого.
#react
✍️ @React_lib
Дублирование JSX - верный признак того, что вам нужно создать компонент.
Дублирование логики в компонентах - верный признак того, что вам, возможно, нужно создать пользовательский хук.
Обратите внимание на слово *может*
#react
✍️ @React_lib
Дублирование логики в компонентах - верный признак того, что вам, возможно, нужно создать пользовательский хук.
Обратите внимание на слово *может*
#react
✍️ @React_lib
Полиморфизм в React: 2 паттерна, которые нужно знать
Независимо от того, создаете ли вы библиотеку или разрабатываете React-компоненты для своих нужд, есть один прием, который вам необходимо знать: полиморфизм. Это когда один элемент может принимать несколько форм, например, когда кнопка может выступать в роли ссылки. При правильном использовании это может избавить вас от необходимости поддерживать множество вариантов компонентов, одновременно предоставляя пользователям необходимую гибкость.
В этом тексте я покажу вам, как использовать два наиболее известных способа реализации полиморфизма в React: паттерны "as" и "asChild".
https://www.bekk.christmas/post/2023/1/polymorphism-in-react
#react
✍️ @React_lib
Независимо от того, создаете ли вы библиотеку или разрабатываете 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
⚛️ Знали ли вы, что можно использовать пересечение типов для легкого расширения нативных свойств элементов в React
#react
✍️ @React_lib
#react
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Знаете ли вы, как и когда использовать flushSync в React?
Используйте
Полезно при интеграции с сторонним кодом, таким как браузерные API или UI-библиотеки.
#react
✍️ @React_lib
Используйте
flushSync
, чтобы принудительно выполнить немедленный рендеринг обновлений, обходя обычную пакетную отрисовку.Полезно при интеграции с сторонним кодом, таким как браузерные API или UI-библиотеки.
#react
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React: Используйте кастомный хук для управления состояниями массивов в ваших компонентах.
#react
✍️ @React_lib
#react
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React: Если вам нужно импортировать серверный компонент в клиентском компоненте, передайте его как prop (children) ↓
#react
✍️ @React_lib
#react
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Одной из самых сложных вещей для меня при изучении React была разделение ответственности.
Когда стоит вынести JSX в новые компоненты? Когда создавать кастомные хуки?
Как можно абстрагировать слой данных от представления?
Вот короткое видео о том, как это сделать
#react
✍️ @React_lib
Когда стоит вынести JSX в новые компоненты? Когда создавать кастомные хуки?
Как можно абстрагировать слой данных от представления?
Вот короткое видео о том, как это сделать
#react
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
❌ Избегайте отслеживания изменений ref с помощью
✅ Вместо этого используйте функцию обратного вызова
#react
✍️ @React_lib
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
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