Извлечение данных: три способа в React
Простой Fetch API, RTK Query из Redux Toolkit и React Query. Сравниваем и ищем лучший: https://proglib.io/w/9bad0bc7
#react
Простой Fetch API, RTK Query из Redux Toolkit и React Query. Сравниваем и ищем лучший: https://proglib.io/w/9bad0bc7
#react
Forwarded from React Junior
3 паттерна для создания React-компонентов
Статья (англ.): https://blog.openreplay.com/3-react-component-design-patterns-you-should-know-about
Несмотря на то, что React не навязывает разработчикам определенную структуру проекта или методику создания компонентов, есть некоторые популярные паттерны, которые используются во многих проектах. Вероятно, они действительно хороши, и их стоит, как минимум, рассмотреть. Статья описывает три таких паттерна.
Презентационные компоненты и компоненты-контейнеры
Презентационные компоненты отвечают только за внешний вид. Они получают данные через пропсы, выводят их и никак не зависят от других компонентов. Очень часто презентационные компоненты не имеют состояния, но также могут отслеживать какое-то состояние, связанное с интерфейсом (например, текст в поле ввода). Примеры презентационных компонентов: список элементов, поле ввода.
Компоненты-контейнеры обеспечивают логику приложения. У них есть состояние, они используют различные методы жизненного цикла и содержат в себе презентационные компоненты для вывода данных. Именно в контейнерных компонентах происходит запрос и обработка данных.
Этот паттерн позволяет отделить логику от представления и повысить реюзабельность компонентов, например, в одном и том же контейнере можно использовать разные презентационные компоненты.
Провайдер
Паттерн Провайдер решает проблему многоуровневого проброса пропсов по цепочке компонентов. Вместо того, чтобы передавать данные вниз, через незаинтересованные компоненты, мы можем создать единое хранилище данных и связываться с ним только там, где это действительно необходимо.
Пример Провайдера в React - это контекст. Мы создаем объект контекста с нужными данными (например, цветовой темой приложения), оборачиваем все приложение в провайдер этого контекста и в нужных местах связываемся с ним с помощью хука useContext, или свойства contextType, или Context.Consumer.
Этот паттерн здорово облегчает передачу данных, но при этом затрудняет переиспользование компонентов, так как они зависят от данных провайдера.
Составные компоненты
Компоненты в React могут работать в симбиозе, разделяя общее состояние. Например, компонент списка (
Но у
Реализовав этот паттерн мы сможем удобно оформлять список, выделяя каждый элемент в
#паттерны #ссылки
Статья (англ.): https://blog.openreplay.com/3-react-component-design-patterns-you-should-know-about
Несмотря на то, что React не навязывает разработчикам определенную структуру проекта или методику создания компонентов, есть некоторые популярные паттерны, которые используются во многих проектах. Вероятно, они действительно хороши, и их стоит, как минимум, рассмотреть. Статья описывает три таких паттерна.
Презентационные компоненты и компоненты-контейнеры
Презентационные компоненты отвечают только за внешний вид. Они получают данные через пропсы, выводят их и никак не зависят от других компонентов. Очень часто презентационные компоненты не имеют состояния, но также могут отслеживать какое-то состояние, связанное с интерфейсом (например, текст в поле ввода). Примеры презентационных компонентов: список элементов, поле ввода.
Компоненты-контейнеры обеспечивают логику приложения. У них есть состояние, они используют различные методы жизненного цикла и содержат в себе презентационные компоненты для вывода данных. Именно в контейнерных компонентах происходит запрос и обработка данных.
Этот паттерн позволяет отделить логику от представления и повысить реюзабельность компонентов, например, в одном и том же контейнере можно использовать разные презентационные компоненты.
Провайдер
Паттерн Провайдер решает проблему многоуровневого проброса пропсов по цепочке компонентов. Вместо того, чтобы передавать данные вниз, через незаинтересованные компоненты, мы можем создать единое хранилище данных и связываться с ним только там, где это действительно необходимо.
Пример Провайдера в React - это контекст. Мы создаем объект контекста с нужными данными (например, цветовой темой приложения), оборачиваем все приложение в провайдер этого контекста и в нужных местах связываемся с ним с помощью хука useContext, или свойства contextType, или Context.Consumer.
Этот паттерн здорово облегчает передачу данных, но при этом затрудняет переиспользование компонентов, так как они зависят от данных провайдера.
Составные компоненты
Компоненты в React могут работать в симбиозе, разделяя общее состояние. Например, компонент списка (
Menu) и компоненты отдельных элементов списка (MenuItem). Вынесение элементов в отдельные компоненты может быть удобно с точки зрения передачи пропсов и структуризации кода. Но у
Menu и MenuItem есть общее состояние - активный элемент, оно должно храниться в компоненте Menu, значит, его нужно передать во все вложенные компоненты MenuItem. Об этом должен позаботиться сам компонент списка (например, с помощью React Context), тогда мы получим составной компонент (compound component). Реализовав этот паттерн мы сможем удобно оформлять список, выделяя каждый элемент в
MenuItem, но при этом не придется заботиться о передаче состояния элементам, так как это происходит под капотом.#паттерны #ссылки
Openreplay
3 React Component Design Patterns You Should Know About
Top 3 design patterns used to create React.JS components that you should know about
Forwarded from Web Stack
React 18, React Redux 8 и TypeScript: что вам нужно знать
https://blog.logrocket.com/react-18-redux-8-typescript/
https://blog.logrocket.com/react-18-redux-8-typescript/
LogRocket Blog
React 18, React Redux 8, and TypeScript: What you need to know - LogRocket Blog
Learn about Redux 8, a state management library for React, and how it works with React 18 and it's TypeScript codebase conversion.
Forwarded from Frontend Info
Глубокое погружение в новую архитектуру React Native
https://medium.com/coox-tech/deep-dive-into-react-natives-new-architecture-fb67ae615ccd #react_native
https://medium.com/coox-tech/deep-dive-into-react-natives-new-architecture-fb67ae615ccd #react_native
Medium
Deep dive into React Native’s New Architecture
The React Native team has announced that the new architecture will be rolled out in 2022. Checkout their full blog here.
Forwarded from FrontEndDev
Реализация связи WebSocket в Next.js
https://blog.logrocket.com/implementing-websocket-communication-next-js/
https://blog.logrocket.com/implementing-websocket-communication-next-js/
LogRocket Blog
Implementing WebSocket communication in Next.js - LogRocket Blog
Integrate Socket.io into Next.js to start a WebSocket connection and share information between the client and server in real time.
Forwarded from Frontend Info
Gurufy облегчает изучение React.js разработки.
C помощью крутых short гайдов вы можете изучить весь стек React.js быстро и легко.
Официальный сайт - https://gurufy.dev/
На данный момент доступны курсы по: Next.js, TypeScript, Jest, React Testing Library и другие.
C помощью крутых short гайдов вы можете изучить весь стек React.js быстро и легко.
Официальный сайт - https://gurufy.dev/
На данный момент доступны курсы по: Next.js, TypeScript, Jest, React Testing Library и другие.
Forwarded from Frontender Libs - обзор библиотек JS / CSS
Viro React
Это сторонняя кросс-платформа с открытым исходным кодом, которая помогает разработчикам создавать приложения дополненной реальности (AR) и виртуальной реальности (VR), в экосистеме React.
👉 @sWebDev
Это сторонняя кросс-платформа с открытым исходным кодом, которая помогает разработчикам создавать приложения дополненной реальности (AR) и виртуальной реальности (VR), в экосистеме React.
👉 @sWebDev
Forwarded from Frontend Головного Мозга
This media is not supported in your browser
VIEW IN TELEGRAM
Tabulator — Библиотека для создания таблиц
Позволяет создавать интерактивные таблицы из различных данных, в формате HTML Table, Javascript Array или JSON.
Особенности / преимущества:
✔️Поддержка Safari, Chrome, Firefox, Opera, IE
✔️Оснащена полезными функциями (фильтры, сортировка, редактирование, загрузка данных)
✔️Возможность работы с React, Angular и Vue
✔️Не имеет зависимостей
✔️Стилизация с помощью классов CSS
Сайт: http://tabulator.info/
Гит: https://github.com/olifolkerd/tabulator
#библиотеки #полезно #js
👉 @frontend_mind
Позволяет создавать интерактивные таблицы из различных данных, в формате HTML Table, Javascript Array или JSON.
Особенности / преимущества:
✔️Поддержка Safari, Chrome, Firefox, Opera, IE
✔️Оснащена полезными функциями (фильтры, сортировка, редактирование, загрузка данных)
✔️Возможность работы с React, Angular и Vue
✔️Не имеет зависимостей
✔️Стилизация с помощью классов CSS
Сайт: http://tabulator.info/
Гит: https://github.com/olifolkerd/tabulator
#библиотеки #полезно #js
👉 @frontend_mind
Forwarded from NOP::Nuances of Programming
Заглянем под капот React Native и узнаем обо всех тонкостях его внутренней работы: выполнение кода JavaScript на устройствах Android/iOS и преобразование его в нативный, рендеринг UI, взаимодействие потоков в приложении, а также многое другое.
https://nuancesprog.ru/p/13634
@nuancesprog #статьи #React
https://nuancesprog.ru/p/13634
@nuancesprog #статьи #React
Forwarded from NOP::Nuances of Programming
Увлекательное обучающее руководство по работе с библиотекой lottie-react-native и созданию интересной анимации в приложении React Native.
https://nuancesprog.ru/p/13845
@nuancesprog #статьи #React
https://nuancesprog.ru/p/13845
@nuancesprog #статьи #React
Forwarded from NOP::Nuances of Programming
React упрощает реализацию функции темного режима, которая порой необходима при просмотре сайтов. Рассмотрим, как ее можно реализовать.
https://nuancesprog.ru/p/13874
@nuancesprog #статьи #React
https://nuancesprog.ru/p/13874
@nuancesprog #статьи #React
Forwarded from NOP::Nuances of Programming
Обучающее руководство для новичков по созданию бессерверных функций с помощью Netlify: настройка проекта, создание приложения и развертывание API.
https://nuancesprog.ru/p/14167/
@nuancesprog #Netlify #JavaScript
https://nuancesprog.ru/p/14167/
@nuancesprog #Netlify #JavaScript
Forwarded from NOP::Nuances of Programming
Redux, NextJS, Axios, Formik, Styled-components, React-query, Storybook - решение 16-ти задач разработки на React в сторонних пакетах NPM.
https://nuancesprog.ru/p/14231/
@nuancesprog #React
https://nuancesprog.ru/p/14231/
@nuancesprog #React
Forwarded from NOP::Nuances of Programming
Рассмотрим этапы создания библиотеки компонентов React и подготовим модульный проект, в котором каждый компонент будет управляться исходным кодом отдельно и публиковаться независимо от других.
https://nuancesprog.ru/p/14380/
@nuancesprog #React
https://nuancesprog.ru/p/14380/
@nuancesprog #React
Forwarded from Webchic - frontend, backend, ci/cd
React: простое и эффективное решение для управления состоянием приложений
В этом небольшом "туториале" я хочу показать вам, как реализовать простое, но эффективное решение для управления состоянием React-приложений.
Немного забегая вперед, скажу, что решение получилось чуть менее производительным, чем "классическое" сочетание хука useReducer() и инструментов, предоставляемых Context API (которые, собственно, и составляют ядро решения).
Статья
В этом небольшом "туториале" я хочу показать вам, как реализовать простое, но эффективное решение для управления состоянием React-приложений.
Немного забегая вперед, скажу, что решение получилось чуть менее производительным, чем "классическое" сочетание хука useReducer() и инструментов, предоставляемых Context API (которые, собственно, и составляют ядро решения).
Статья
Habr
React: простое и эффективное решение для управления состоянием приложений
Привет, друзья! В этом небольшом "туториале" я хочу показать вам, как реализовать простое, но эффективное решение для управления состоянием React-приложений . Немного забегая вперед, скажу,...