Изучаем код React
Меня пугает даже мысль о том, чтобы прочитать код фреймворка, который я использую уже много лет. Я всегда воспринимал React как черный ящик, который берет JSX и выводит на экран, не задумываясь об этом.
Конечно, я знаю то-то и то-то о виртуальном DOM и алгоритме свертки. По крайней мере, в теории. Но только в этом году мое любопытство наконец-то пересилило. Я открыл репозиторий React, но на этот раз с намерением прочитать код.
https://alexkondov.com/readint-source-code-react/
✍️ @React_lib
Меня пугает даже мысль о том, чтобы прочитать код фреймворка, который я использую уже много лет. Я всегда воспринимал React как черный ящик, который берет JSX и выводит на экран, не задумываясь об этом.
Конечно, я знаю то-то и то-то о виртуальном DOM и алгоритме свертки. По крайней мере, в теории. Но только в этом году мое любопытство наконец-то пересилило. Я открыл репозиторий React, но на этот раз с намерением прочитать код.
https://alexkondov.com/readint-source-code-react/
✍️ @React_lib
❤3👍1
Media is too big
VIEW IN TELEGRAM
Why Signals Are Better Than React Hooks
00:00 - Introduction
00:57 - Demo
02:18 - The Problem With Hooks
04:12 - Why Signals Are Great
05:40 - Basic Signals
11:15 - Advanced Signals
источник
✍️ @React_lib
00:00 - Introduction
00:57 - Demo
02:18 - The Problem With Hooks
04:12 - Why Signals Are Great
05:40 - Basic Signals
11:15 - Advanced Signals
источник
✍️ @React_lib
👍2
Все, что я хотел бы знать перед переносом 50 000 строк кода на React Server Components
Серверных компонентов React очень много. Недавно мы переосмыслили нашу документацию и сделали ребрендинг Mux, а пока мы этим занимались, перенесли все сайты mux.com и docs.mux.com на серверные компоненты. Так что... поверьте мне. Я знаю. Я также знаю, что это возможно, не так страшно и, возможно, стоит того.
https://www.mux.com/blog/what-are-react-server-components
✍️ @React_lib
Серверных компонентов React очень много. Недавно мы переосмыслили нашу документацию и сделали ребрендинг Mux, а пока мы этим занимались, перенесли все сайты mux.com и docs.mux.com на серверные компоненты. Так что... поверьте мне. Я знаю. Я также знаю, что это возможно, не так страшно и, возможно, стоит того.
import { Suspense } from 'react'
async function VideoSidebar({ videoId }) {
return (
<Suspense fallback={<p>loading comments...</p>}>
<Comments videoId={videoId} />
</Suspense>
<Suspense fallback={<p>loading related videos...</p>}>
<RelatedVideos videoId={videoId} />
</Suspense>
)
}
https://www.mux.com/blog/what-are-react-server-components
✍️ @React_lib
👍1
Шаблоны проектирования React
Разрабатывая приложения на React, вы наверняка сталкивались с различными сценариями использования, которые нелегко решить с помощью старого подхода.
Для каждого случая требуется свой паттерн, позволяющий решить проблему наиболее оптимальным способом, а также сделать наш код более масштабируемым.
React предоставляет различные паттерны проектирования для решения общих проблем. Список часто используемых паттернов проектирования в React таков:
Presentational & Container Component
Higher Order Components
Render Props
Compound Components
Hooks
https://dev.to/anuradha9712/react-design-patterns-2acc
✍️ @React_lib
Разрабатывая приложения на React, вы наверняка сталкивались с различными сценариями использования, которые нелегко решить с помощью старого подхода.
Для каждого случая требуется свой паттерн, позволяющий решить проблему наиболее оптимальным способом, а также сделать наш код более масштабируемым.
React предоставляет различные паттерны проектирования для решения общих проблем. Список часто используемых паттернов проектирования в React таков:
Presentational & Container Component
Higher Order Components
Render Props
Compound Components
Hooks
https://dev.to/anuradha9712/react-design-patterns-2acc
✍️ @React_lib
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Совет по React
Отложите создание non-primitive значений, если вы используете их в массиве зависимостей
✍️ @React_lib
Отложите создание non-primitive значений, если вы используете их в массиве зависимостей
✍️ @React_lib
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Когда разделять JSX на новые компоненты? Когда создавать пользовательские хуки? Как абстрагировать уровень данных от представления?
✍️ @React_lib
✍️ @React_lib
👍4
Как React 18 повышает производительность приложений
В React 18 появились функции одновременной работы, которые кардинально меняют способ визуализации приложений React. Мы рассмотрим, как эти последние возможности влияют на производительность приложения и улучшают ее.
Сначала сделаем небольшой шаг назад, чтобы понять основы длительных задач и соответствующих измерений производительности.
https://vercel.com/blog/how-react-18-improves-application-performance
✍️ @React_lib
В React 18 появились функции одновременной работы, которые кардинально меняют способ визуализации приложений React. Мы рассмотрим, как эти последние возможности влияют на производительность приложения и улучшают ее.
Сначала сделаем небольшой шаг назад, чтобы понять основы длительных задач и соответствующих измерений производительности.
https://vercel.com/blog/how-react-18-improves-application-performance
✍️ @React_lib
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
❌ Избегайте использования useState() для сложного управления состояниями в React
✅ Вместо этого используйте useReducer
✍️ @React_lib
✅ Вместо этого используйте useReducer
✍️ @React_lib
👍3
Совет
Проблема: Если в приложении React используются providers, то может потребоваться повторить их конфигурацию в нескольких местах:
1. The app's root
2. Storybook
3. Tests
Решение: Создадим компонент AppProviders. Тогда мы сможем использовать его в нескольких местах.
✍️ @React_lib
Проблема: Если в приложении React используются providers, то может потребоваться повторить их конфигурацию в нескольких местах:
1. The app's root
2. Storybook
3. Tests
Решение: Создадим компонент AppProviders. Тогда мы сможем использовать его в нескольких местах.
✍️ @React_lib
👍4
React 18 Design Patterns and Best Practices.pdf
11 MB
React 18 Design Patterns and Best Practices: Design, build, and deploy production-ready web applications with ease and create powerful user experiences, 4th Edition
Автор: Carlos Santana Roldan (2023)
Книга состоит из трех частей: в первой вы узнаете об основах паттернов React, во второй погрузитесь во внутреннюю работу React, а в третьей сосредоточитесь на практическом применении. Все примеры кода обновлены в соответствии с последней версией React, а также добавлены новые возможности React 18 и Node 18, архитектура MonoRepo и обширная глава по TypeScript.
✍️ @React_lib
Автор: Carlos Santana Roldan (2023)
Книга состоит из трех частей: в первой вы узнаете об основах паттернов React, во второй погрузитесь во внутреннюю работу React, а в третьей сосредоточитесь на практическом применении. Все примеры кода обновлены в соответствии с последней версией React, а также добавлены новые возможности React 18 и Node 18, архитектура MonoRepo и обширная глава по TypeScript.
✍️ @React_lib
👍2
Понимание компонентов React Server
Изучите основы React Server Components, чтобы лучше понять, зачем (и когда) их внедрять.
https://vercel.com/blog/understanding-react-server-components
✍️ @React_lib
Изучите основы React Server Components, чтобы лучше понять, зачем (и когда) их внедрять.
https://vercel.com/blog/understanding-react-server-components
✍️ @React_lib
👍5
Частично управляемые компоненты: Декларативный паттерн проектирования в React
В React принято различать Controlled и Uncontrolled компоненты. Но реальный мир не такой уж черно-белый...
Вкратце:
Uncontrolled компоненты управляют изменениями внутри себя, внутренне.
Controlled компоненты управляют своими изменениями извне, изнутри.
Недавно я стал автором React-компонента с древовидным представлением под названием react-arborist. После работы над таким сложным компонентом я почувствовал отсутствие необходимой концепции в нашем React-сообществе.
https://www.jameskerr.blog/posts/partially-controlled-react-components/
✍️ @React_lib
В React принято различать Controlled и Uncontrolled компоненты. Но реальный мир не такой уж черно-белый...
Вкратце:
Uncontrolled компоненты управляют изменениями внутри себя, внутренне.
Controlled компоненты управляют своими изменениями извне, изнутри.
Недавно я стал автором React-компонента с древовидным представлением под названием react-arborist. После работы над таким сложным компонентом я почувствовал отсутствие необходимой концепции в нашем React-сообществе.
https://www.jameskerr.blog/posts/partially-controlled-react-components/
✍️ @React_lib
👍3
Использование спрайтовых иконок svg в React
Существует множество способов использовать svg-иконки в приложениях React. Самый интуитивный, но и самый худший - это писать код svg непосредственно в компоненте в виде JSX.
Я не буду вдаваться во все причины, так как другие люди уже проделали большую работу по объяснению этого, но в целом это неэффективно и значительно увеличивает размер вашего пакета.
https://www.jacobparis.com/content/svg-icons
✍️ @React_lib
Существует множество способов использовать svg-иконки в приложениях React. Самый интуитивный, но и самый худший - это писать код svg непосредственно в компоненте в виде JSX.
Я не буду вдаваться во все причины, так как другие люди уже проделали большую работу по объяснению этого, но в целом это неэффективно и значительно увеличивает размер вашего пакета.
https://www.jacobparis.com/content/svg-icons
✍️ @React_lib
👍3