Хуки 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
Используя библиотеку 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
ReactRouterWebsite
React Router: Declarative Routing for React
Learn once, Route Anywhere
👍1🔥1
Организация react-компонентов с помощью dot-notation и почему я часто прибегаю именно к этому способу
Компонентный подход является основополагающим при создании приложений с помощью react. Компоненты - это главные строительные блоки, которые в своей композиции помогают реализовать сложные системы. В основе каждого компонента, в идеале, всегда лежит какой-то обособленный набор функционала, своего рода микро-решение микро-задачи. Далее
✍️ @React_lib
Компонентный подход является основополагающим при создании приложений с помощью react. Компоненты - это главные строительные блоки, которые в своей композиции помогают реализовать сложные системы. В основе каждого компонента, в идеале, всегда лежит какой-то обособленный набор функционала, своего рода микро-решение микро-задачи. Далее
✍️ @React_lib
Хабр
Организация react-компонентов с помощью dot-notation и почему я часто прибегаю именно к этому способу
Компонентный подход является основополагающим при создании приложений с помощью react. Компоненты - это главные строительные блоки, которые в своей композиции помогают реализовать сложные системы. В...
👍2
Кастомный React рендерер
Когда React рендерит приложение и обновляет DOM, то используется React DOM. При рендере приложения на сервере используется модуль
Таким образом, для каждого окружения используется свой рендерер, хотя модуль
Модуль
Для разработки своего рендерера необходимо описать объект “host config”, в котором описаны методы реализации API React. Выглядит так:
https://github.com/facebook/react/blob/main/packages/react-reconciler/README.md
✍️ @React_lib
Когда 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
SWR происходит от stale-while-revalidate, это стратегия кэширования ресурсов, в котором сначала возвращаются данные из кэша, а потом происходит запрос на получение свежих данных. Преимущество такой стратегии кэширования заключается в увеличении видимой производительности сайта, пользователям приходится меньше ждать и видеть спиннеры загрузки.
Особенности библиотеки: поддержка стратегии SWR, автоматическая ревалидация кэша, поддержка API Suspense. Авторами библиотеки являются разработчики Next.js.
https://swr.vercel.app/
✍️ @React_lib
👍2
Cтилизация React приложения
Если ты новичок в React, тебе может быть интересно, почему существует так много разных руководств, которые учат различным способам стилизации React приложения. По правде говоря, мы всё еще пытаемся понять, как лучше поступить. Далее
✍️ @React_lib
Если ты новичок в React, тебе может быть интересно, почему существует так много разных руководств, которые учат различным способам стилизации React приложения. По правде говоря, мы всё еще пытаемся понять, как лучше поступить. Далее
✍️ @React_lib
👍1
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
React JS сайт с нуля
- установка и настройка React и Bootstrap
- Адаптивное меню с bootstrap
- Роутинг сайта, переход по страницам
- делаем слайдер Bootstrap
- верстка табы адаптивно
- форма обратной связи
- верстка компоненты Bootstrap
- верстка сайта блог посты
- как загрузить сайт React JS на хостинг
✍️ @React_lib
- установка и настройка React и Bootstrap
- Адаптивное меню с bootstrap
- Роутинг сайта, переход по страницам
- делаем слайдер Bootstrap
- верстка табы адаптивно
- форма обратной связи
- верстка компоненты Bootstrap
- верстка сайта блог посты
- как загрузить сайт React JS на хостинг
✍️ @React_lib
👍3
Найди ошибку в React-компоненте: Функциональное Карри
В этом выпуске «Найди ошибку» у нас есть простой React компонент-переключатель, который переключается между активным и неактивным состояниями при нажатии. Однако он не работает как ожидается. Найдите ошибку.
✍️ @React_lib
В этом выпуске «Найди ошибку» у нас есть простой React компонент-переключатель, который переключается между активным и неактивным состояниями при нажатии. Однако он не работает как ожидается. Найдите ошибку.
✍️ @React_lib
👍6
Критический путь рендеринга
https://indepth.dev/posts/1498/101-javascript-critical-rendering-path
✍️ @React_lib
https://indepth.dev/posts/1498/101-javascript-critical-rendering-path
✍️ @React_lib
👍1
Подробный рассказ о принципах работы библиотеки styled-components
https://www.joshwcomeau.com/react/demystifying-styled-components/
✍️ @React_lib
https://www.joshwcomeau.com/react/demystifying-styled-components/
✍️ @React_lib
Joshwcomeau
Demystifying styled-components • Josh W. Comeau
For so many React devs, styled-components seems kinda magical. It isn't at all clear how it uses traditional CSS features under-the-hood, and that lack of clarity can cause real problems when things go awry. In this post, we'll learn exactly how styled-components…
Учимся верстать на React за 5 минут
Эта статья для тех, кто уже знает CSS/HTML, немного JavaScript, хочет попробовать свои силы в React, но не знает, с чего начать. А начать можно как раз с верстки.
✍️ @React_lib
Эта статья для тех, кто уже знает CSS/HTML, немного JavaScript, хочет попробовать свои силы в React, но не знает, с чего начать. А начать можно как раз с верстки.
✍️ @React_lib
👍3❤1
⚛️ 🚀react-static – фреймворк для создания статических сайтов
react-static – простой в настройке генератор статических сайтов на React. Можно выделить следующие преимущества фреймворка:
- Независимость от данных. Все данные, необходимые для рендеринга сайта, заранее собираются в конфиг-файле. Источник данных может быть любой, хоть GraphQL или REST API. В компонентах доступ к данным происходит через хук или пропсы.
- Поддержка SPA. При загрузке статической страницы сайта загружается минимальный бандл для React. Помимо JS бандла загружаются остальные статические страницы и данные, а потом помещаются в кэш браузера. Благодаря такому подходу дальнейшие переходы по ссылкам будут происходить мгновенно, без перезагрузки страницы.
https://github.com/react-static/react-static
✍️ @React_lib
react-static – простой в настройке генератор статических сайтов на React. Можно выделить следующие преимущества фреймворка:
- Независимость от данных. Все данные, необходимые для рендеринга сайта, заранее собираются в конфиг-файле. Источник данных может быть любой, хоть GraphQL или REST API. В компонентах доступ к данным происходит через хук или пропсы.
- Поддержка SPA. При загрузке статической страницы сайта загружается минимальный бандл для React. Помимо JS бандла загружаются остальные статические страницы и данные, а потом помещаются в кэш браузера. Благодаря такому подходу дальнейшие переходы по ссылкам будут происходить мгновенно, без перезагрузки страницы.
https://github.com/react-static/react-static
✍️ @React_lib
👍1