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.js - лучшие практики
В этой статье рассматриваются лучшие практики структурирования приложений React.js с упором на три основных подхода: Группировка по признакам, Группировка по типу файлов и гибридный подход. В руководстве также рассказывается о том, как интегрировать в структуру приложения современные возможности React, такие как Redux, Hooks, Stateful Container Components, Context API, Testing libraries и Styled-компоненты.
https://www.dotnetcurry.com/reactjs/folder-structure-for-reactjs
✍️ @React_lib
В этой статье рассматриваются лучшие практики структурирования приложений React.js с упором на три основных подхода: Группировка по признакам, Группировка по типу файлов и гибридный подход. В руководстве также рассказывается о том, как интегрировать в структуру приложения современные возможности React, такие как Redux, Hooks, Stateful Container Components, Context API, Testing libraries и Styled-компоненты.
https://www.dotnetcurry.com/reactjs/folder-structure-for-reactjs
✍️ @React_lib
React и жизнь после сборки
Бывает что на руках есть лишь «бинарная» сборка сайта на модном фреймворке вроде Angular или React, в которой «срочно надо что‑то поправить». А исходного кода нет. Есть лишь вы, «бандл» с обфрусцированным JavaScript‑кодом внутри и горящие сроки. Рассказываю что с этим можно cделатькроме увольнения.
https://habr.com/ru/articles/839464/
✍️ @React_lib
Бывает что на руках есть лишь «бинарная» сборка сайта на модном фреймворке вроде Angular или React, в которой «срочно надо что‑то поправить». А исходного кода нет. Есть лишь вы, «бандл» с обфрусцированным JavaScript‑кодом внутри и горящие сроки. Рассказываю что с этим можно cделать
https://habr.com/ru/articles/839464/
✍️ @React_lib
Подборка репозитории GitHub, необходимые каждому разработчику на React
1. 30 Days of React
30 Days of React challenge - это пошаговое руководство по изучению React за 30 дней.
2. Awesome React
Коллекция удивительных вещей, связанных с экосистемой React
3. React Bits
✨ React паттерны, техники, советы и рекомендации ✨
4. React Typescript Cheatsheett-cheatsheets/react
Шпаргалки для опытных разработчиков React, начинающих работать с TypeScript
5. ReactJS Interview Question
Список из 500 вопросов и ответов на собеседования по ReactJS.
✍️ @React_lib
1. 30 Days of React
30 Days of React challenge - это пошаговое руководство по изучению React за 30 дней.
2. Awesome React
Коллекция удивительных вещей, связанных с экосистемой React
3. React Bits
✨ React паттерны, техники, советы и рекомендации ✨
4. React Typescript Cheatsheett-cheatsheets/react
Шпаргалки для опытных разработчиков React, начинающих работать с TypeScript
5. ReactJS Interview Question
Список из 500 вопросов и ответов на собеседования по ReactJS.
✍️ @React_lib
Больше, чем нужно знать о ReactDOM.flushSync
Итак, что делает
Название предполагает, что он выполняет синхронную очистку. Но что такое "очистка", что именно очищается, и когда это должно происходить синхронно? Для чего это нужно?
https://julesblom.com/writing/flushsync
✍️ @React_lib
flushSync
является частью того, что я называю "Rare React"; это любопытные и необычные части, внешнее кольцо API, редко используемые особые инструменты. И именно это мне нравится изучать и писать об этом статьи в блог.Итак, что делает
ReactDOM.flushSync
и когда это полезно?Название предполагает, что он выполняет синхронную очистку. Но что такое "очистка", что именно очищается, и когда это должно происходить синхронно? Для чего это нужно?
function Demo() {
const [count, setCount] = useState(0);
const [flag, setFlag] = useState(false);
function handleClick() {
setCount((c) => c + 1);
setFlag((f) => !f);
}
return (
<div>
<button onClick={handleClick}>Next</button>
<h1 style={{ color: flag ? "blue" : "black" }}>
{count}
</h1>
</div>
);
}
https://julesblom.com/writing/flushsync
✍️ @React_lib
JulesBlom.com
More Than You Need to Know About ReactDOM.flushSync | JulesBlom.com
An in-depth look at what ReactDOM.flushSync does and what it’s good for.
Будущее React.use и React.useMemo — мощная альтернатива селекторам контекста
В этой статье я рассмотрю, как оптимизировал проблемный контекст React приложения с помощью библиотеки use-context-selector от Дайши Като, как у меня сформировалось предпочтение в пользу использования селекторов контекста для предотвращения ненужных перерисовок, и как Дэн Абрамов убедил меня, что абстракция, которую я создал для того, чтобы сделать селекторы контекста компонуемыми, была неверным подходом.
https://interbolt.org/blog/react-use-selector-optimization/
✍️ @React_lib
В этой статье я рассмотрю, как оптимизировал проблемный контекст React приложения с помощью библиотеки use-context-selector от Дайши Като, как у меня сформировалось предпочтение в пользу использования селекторов контекста для предотвращения ненужных перерисовок, и как Дэн Абрамов убедил меня, что абстракция, которую я создал для того, чтобы сделать селекторы контекста компонуемыми, была неверным подходом.
https://interbolt.org/blog/react-use-selector-optimization/
✍️ @React_lib
React95
Это библиотека компонентов, созданная на основе дизайна пользовательского интерфейса Windows 95.
https://react95.github.io/React95/?path=/story/all--all
https://github.com/React95/React95
✍️ @React_lib
Это библиотека компонентов, созданная на основе дизайна пользовательского интерфейса Windows 95.
https://react95.github.io/React95/?path=/story/all--all
https://github.com/React95/React95
✍️ @React_lib
Запуск локального React приложения в Android и iOS приложения
Бывают ситуации, когда вам нужно запустить веб-приложение React с мобильного телефона локально. Это означает, что оно полностью обходится без облака, на 100 % состоит из офлайна и абсолютно не требует обращения к удаленному серверу.
В этом руководстве мы покажем вам, как можно собрать приложение Vite и React в приложение для iOS и Android и загрузить его в
https://ditto.live/blog/run-react-locally-in-android
https://ditto.live/blog/run-react-locally-in-ios-app
✍️ @React_lib
Бывают ситуации, когда вам нужно запустить веб-приложение React с мобильного телефона локально. Это означает, что оно полностью обходится без облака, на 100 % состоит из офлайна и абсолютно не требует обращения к удаленному серверу.
В этом руководстве мы покажем вам, как можно собрать приложение Vite и React в приложение для iOS и Android и загрузить его в
WKWebView
. https://ditto.live/blog/run-react-locally-in-android
https://ditto.live/blog/run-react-locally-in-ios-app
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
❌ Избегайте prop-drilling компонентов в React
✅ Вместо этого используйте шаблон Provider/Consumer с помощью Context API
✍️ @React_lib
✅ Вместо этого используйте шаблон Provider/Consumer с помощью Context API
✍️ @React_lib
⚛️ Новости React Compiler - react-compiler-runtime 🔥
Новый официальный экспериментальный пакет для поддержки React v18 + v17 👌
✍️ @React_lib
Новый официальный экспериментальный пакет для поддержки React v18 + v17 👌
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
❌ Избегайте создания компонентов с слишком большим количеством пропсов.
✅ Вместо этого используйте паттерн составных компонентов (compound components) в React, чтобы эффективно применять композицию.
✍️ @React_lib
✅ Вместо этого используйте паттерн составных компонентов (compound components) в React, чтобы эффективно применять композицию.
✍️ @React_lib
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Мне не нравится встраивать бизнес-логику или логику приложения напрямую в компоненты.
Вместо этого я использую хук
✅ Более предсказуемые изменения состояния
✅ Лучшая архитектура
✍️ @React_lib
Вместо этого я использую хук
useReducer
, чтобы отделить бизнес-логику от пользовательского интерфейса.✅ Более предсказуемые изменения состояния
✅ Лучшая архитектура
✍️ @React_lib
Управление типами кортежей
Предположим, у нас есть функция, которая возвращает кортеж, например, пользовательский хук:
https://kyleshevlin.com/wrangling-tuple-types/
✍️ @React_lib
Предположим, у нас есть функция, которая возвращает кортеж, например, пользовательский хук:
function useBool(initialValue = false) {
const [state, setState] = React.useState(initialValue)
const handlers = React.useMemo(
() => ({
on: () => setState(true),
off: () => setState(false),
toggle: () => setState(s => !s),
reset: () => setState(initialValue),
}),
[initialValue],
)
return [state, handlers]
}
const result = useBool()
https://kyleshevlin.com/wrangling-tuple-types/
✍️ @React_lib