React
2.84K subscribers
305 photos
127 videos
14 files
361 links
Подборки по React js и все что с ним связано. По всем вопросам @evgenycarter
Download Telegram
👍2
Error Boundaries в React: препарируем лягушку

Представим, что у нас есть приложение на React, в котором можно читать и писать отзывы. Пользователь открыл список отзывов, пролистал его, нажал кнопку «Написать отзыв». Форма написания отзыва открывается в попапе, над списком. Пользователь начинает вводить текст, свой e-mail. Вдруг валидация почты срабатывает с ошибкой, которую разработчики забыли обработать. Результат — белый экран. React просто не смог ничего отрендерить из-за этой ошибки в каком-то попапе. Далее

✍️ @React_lib
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Руководство - шпаргалка по рендерингу React

Когда происходит повторный рендеринг компонента react? Что может вызвать повторный рендеринг, и как предотвратить ненужный рендеринг? Вот краткая шпаргалка, к которой вы можете обратиться каждый раз, когда будете задавать себе эти вопросы.

https://alexsidorenko.com/blog/react-render-cheat-sheet/

✍️ @React_lib
👍4
Распространенные ошибки при использовании React Testing Library.

https://te.legra.ph/Rasprostranennye-oshibki-pri-ispolzovanii-React-Testing-Library-06-29

✍️ @React_lib
👍1
Хуки react-router

Используя библиотеку react-router для получения текущего состояния роутера и выполнения навигации, можно использовать кастомные хуки, которые входят в react-router-dom:

- useHistory. Возвращает объект history, который позволяет изменить состояние роутера. Например, можно перенаправить пользователя на другой URL, либо вернуться на предыдущую страницу. 

- useLocation. Возвращает объект location, представляющий текущий URL. Этот хук аналогичен useState, который возвращает новый объект location при смене текущего URL.

- useParams. Хук для доступа к параметрам URL, который установлен в роуте.

- useRouteMatch. Этот хук пытается сопоставить текущий URL таким же образом, как и <Route>. Может использоваться взамен компонента <Route>, если необходимо отрендерить что-то при заданном URL.

- useQuery. Хук не входит в список стандартных, но его можно реализовать используя useLocation.

https://reactrouter.com/web/api/Hooks

✍️ @React_lib
👍1🔥1
Организация react-компонентов с помощью dot-notation и почему я часто прибегаю именно к этому способу

Компонентный подход является основополагающим при создании приложений с помощью react. Компоненты - это главные строительные блоки, которые в своей композиции помогают реализовать сложные системы. В основе каждого компонента, в идеале, всегда лежит какой-то обособленный набор функционала, своего рода микро-решение микро-задачи. Далее
✍️ @React_lib
👍2
Кастомный React рендерер

Когда React рендерит приложение и обновляет DOM, то используется React DOM. При рендере приложения на сервере используется модуль react-dom/server. Для мобильных приложений для рендера используется модуль react-native

Таким образом, для каждого окружения используется свой рендерер, хотя модуль react используется везде один. 

Модуль react предоставляет API для определения компонентов, а реализация находится в “рендерерах”. Для связи хуков с реализацией используется объект “диспатчер”. При вызове useState, вызов перенаправляется текущему диспатчеру рендерера. Об этом есть подробная статья в блоге Дэна Абрамова.

Для разработки своего рендерера необходимо описать объект “host config”, в котором описаны методы реализации API React. Выглядит так:


const HostConfig = {
createInstance(type, props) {
// e.g. DOM renderer returns a DOM node
},
// ...
supportsMutation: true, // it works by mutating nodes
appendChild(parent, child) {
// e.g. DOM renderer would call .appendChild() here
},
// ...
};


https://github.com/facebook/react/blob/main/packages/react-reconciler/README.md

✍️ @React_lib
👍1
Библиотека SWR для получения данных. Библиотека представляет из себя набор хуков, основной из которых это useSWR. Помимо получения данных, есть возможность изменения данных. Изменение данных также возможно по стратегии SWR - сначала локально, потом отправляем запрос на сервер.

SWR происходит от stale-while-revalidate, это стратегия кэширования ресурсов, в котором сначала возвращаются данные из кэша, а потом происходит запрос на получение свежих данных. Преимущество такой стратегии кэширования заключается в увеличении видимой производительности сайта, пользователям приходится меньше ждать и видеть спиннеры загрузки.


Особенности библиотеки: поддержка стратегии SWR, автоматическая ревалидация кэша, поддержка API Suspense. Авторами библиотеки являются разработчики Next.js.

https://swr.vercel.app/

✍️ @React_lib
👍2
Cтилизация React приложения

Если ты новичок в React, тебе может быть интересно, почему существует так много разных руководств, которые учат различным способам стилизации React приложения. По правде говоря, мы всё еще пытаемся понять, как лучше поступить. Далее

✍️ @React_lib
👍1
Шпаргалка по React.js

https://devhints.io/react

✍️ @React_lib
🔥2
React JS сайт с нуля

- установка и настройка React и Bootstrap
- Адаптивное меню с bootstrap
- Роутинг сайта, переход по страницам
- делаем слайдер Bootstrap
- верстка табы адаптивно
- форма обратной связи
- верстка компоненты Bootstrap
- верстка сайта блог посты
- как загрузить сайт React JS на хостинг

✍️ @React_lib
👍3
Найди ошибку в React-компоненте: Функциональное Карри

В этом выпуске «Найди ошибку» у нас есть простой React компонент-переключатель, который переключается между активным и неактивным состояниями при нажатии. Однако он не работает как ожидается. Найдите ошибку.

✍️ @React_lib
👍6