52 pontos por xguru 2025-03-04 | 6 comentários | Compartilhar no WhatsApp
  • O React, após ser usado por muito tempo, formou um vasto ecossistema de bibliotecas
  • Desenvolvedores vindos de outras linguagens/frameworks podem ter dificuldade para escolher as bibliotecas necessárias para construir aplicações React
  • O núcleo do React é uma biblioteca focada em criar UI baseada em componentes
    • Com componentes funcionais e React Hooks, é possível gerenciar estado local, lidar com efeitos colaterais e otimizar desempenho
    • Em última análise, tanto componentes quanto hooks funcionam como uma forma de compor UI usando funções
  • São apresentadas as bibliotecas React essenciais para desenvolver aplicações de grande porte em 2025

Começando um projeto React

  • Vite : a ferramenta mais popular para configurar projetos React. Oferece alta velocidade de build e suporte simples a TypeScript
  • Next.js :
    • Metaframework baseado em React com suporte a server-side rendering (SSR) e static site generation (SSG)
    • Oferece vários recursos, como roteamento baseado em arquivos, rotas de API e React Server Components (RSC)
  • TanStack Start (Beta) : novo framework baseado em React, com suporte planejado a React Server Components. Está sendo desenvolvido como alternativa ao Next.js
  • React Router : principal biblioteca para roteamento client-side no React. Atualmente passa por mudanças sob influência do Remix
  • Astro : ferramenta de geração de sites estáticos agnóstica a framework. Pode ser usada com React e otimiza o desempenho ao minimizar JavaScript desnecessário
  • Nitro , Redwood , Waku
    • Novos frameworks e ferramentas do ecossistema React
    • Waku é uma biblioteca com suporte a React Server Components criada pelo desenvolvedor do Zustand
  • Recomendação:
    • Renderização client-side (CSR): Vite
    • Renderização server-side (SSR): Next.js
    • Geração de sites estáticos (SSG): Astro

Gerenciadores de pacotes para React

  • npm : gerenciador de pacotes padrão do Node.js e o mais usado
  • Yarn : oferece melhor gerenciamento de dependências e ganhos de velocidade
  • pnpm : tem ótimo desempenho, mas é relativamente menos popular
  • Turborepo : ferramenta de gerenciamento de monorepo, permitindo administrar vários projetos React com eficiência
  • Recomendação:
    • Gerenciamento de pacotes em geral: npm
    • Quando for necessário otimizar desempenho: pnpm
    • Quando houver necessidade de monorepo: Turborepo

Gerenciamento de estado no React

  • useState, useReducer : hooks nativos do React para gerenciar estado dentro de componentes
  • useContext : hook nativo do React para gerenciamento de estado global
  • Zustand : biblioteca para gerenciar estado global com API simples. Por ser mais fácil de usar que Redux, vem sendo preferida por muitos desenvolvedores recentemente
  • Redux : biblioteca de gerenciamento de estado usada há muito tempo. Mais recentemente, o Redux Toolkit se consolidou como padrão
  • XState, Zag : bibliotecas de gerenciamento de estado baseadas em máquinas de estado
  • Mobx , Jotai , Nano Stores : bibliotecas de gerenciamento de estado que podem ser usadas como alternativas a Zustand e Redux
  • Recomendação:
    • Estado local: useState / useReducer
    • Estado global pequeno: useContext
    • Estado global grande: Zustand

Data fetching no React

  • TanStack Query : biblioteca de data fetching para requisições a APIs REST e GraphQL. Oferece recursos como cache, sincronização e atualizações otimistas
  • Apollo Client : biblioteca de gerenciamento de dados otimizada para APIs GraphQL
  • urql : cliente GraphQL leve
  • Relay : cliente GraphQL de alto desempenho desenvolvido pelo Facebook
  • RTK Query : ferramenta que facilita o data fetching em ambientes com Redux
  • tRPC : oferece comunicação de API type-safe entre backend e frontend com base em TypeScript. Pode ser usado com TanStack Query
  • Recomendação:
    • Data fetching no servidor: React Server Components / Functions (ao usar um metaframework compatível)
    • Data fetching no cliente: TanStack Query (REST, GraphQL)
    • Exclusivo para GraphQL: Apollo Client
    • Comunicação de API com segurança de tipos: tRPC

Roteamento no React

  • React Router : biblioteca mais amplamente usada para roteamento client-side
  • TanStack Router (Beta) : nova biblioteca de roteamento com excelente suporte a TypeScript
  • Recomendação:
    • Roteamento no servidor: Next.js
    • Roteamento no cliente: React Router (mais usado), TanStack Router (tendência mais recente)

Estilização CSS no React

  • Tailwind CSS
    • Abordagem Utility-First CSS, permitindo estilização rápida com classes predefinidas
    • Ajuda a manter a consistência do design system, mas a nomenclatura das classes pode ficar complexa
  • CSS Modules
    • Permite modularizar os estilos por componente, evitando conflitos com estilos globais
    • É a abordagem mais amplamente usada entre as soluções de CSS-in-CSS
  • styled-components
    • Abordagem CSS-in-JS que define CSS dentro do código JavaScript
    • Sua popularidade vem caindo recentemente por questões de desempenho e problemas em ambientes server-side
  • Emotion : biblioteca CSS-in-JS semelhante ao styled-components, com otimização de desempenho e suporte ao uso de classes utilitárias
  • clsx : biblioteca utilitária que facilita a definição condicional de className
  • StyleX : nova solução CSS-in-JS desenvolvida pelo Facebook. Oferece estilização utility-first com compilação otimizada
  • Outras bibliotecas CSS : PandaCSS , linaria , vanilla-extract , nanocss , UnoCSS , Styled JSX
  • Recomendação:
    • Opção mais popular: Tailwind CSS
    • Se precisar de modularização de estilos: CSS Modules
    • Solução CSS-in-JS mais atual: StyleX

Bibliotecas de UI para React

  • Material UI (MUI) : biblioteca de UI ainda muito usada em projetos freelance. Baseada no sistema Material Design do Google
  • Mantine UI : a biblioteca de UI mais popular em 2022. Oferece vários recursos e suporte a estilos personalizados
  • Chakra UI : a biblioteca de UI mais popular em 2021. Destaca-se pela acessibilidade e facilidade de estilização
  • Hero UI : biblioteca de UI renomeada a partir da antiga Next UI
  • Park UI : biblioteca de UI baseada em Ark UI
  • PrimeReact : oferece diversos componentes de UI prebuilt
  • Bibliotecas de UI headless
  • Bibliotecas de UI que perderam frequência de uso
  • Recomendação:
    • Bibliotecas de UI com estilos incluídos: MUI, Mantine, Chakra UI
    • Bibliotecas de UI headless sem estilos incluídos: shadcn/ui, Radix

Bibliotecas de animação para React

  • Motion : biblioteca de animação mais recomendada (antigo Framer Motion)
  • react-spring : permite implementar animações baseadas em física

Gráficos e visualização de dados em React

  • D3.js : biblioteca de gráficos de baixo nível, poderosa, mas com curva de aprendizado acentuada
  • Recharts : biblioteca de gráficos fácil de usar. Permite customização básica
  • visx : funciona de forma semelhante ao D3, mas é mais amigável ao React
  • Outras bibliotecas de gráficos : Victory , nivo , react-chartjs
  • Recomendação:
    • Gráficos simples: Recharts
    • Customização no estilo D3: visx

Bibliotecas de formulários para React

  • React Hook Form : a biblioteca de formulários para React mais usada. Com zod, permite validação de formulários robusta
  • Conform : biblioteca de formulários emergente, com integração fácil com aplicações full-stack
  • Formik , React Final Form : bibliotecas de formulários tradicionais para React, ainda usadas em alguns projetos
  • Recomendação:
    • Ao escolher uma biblioteca de formulários, use React Hook Form + zod

Estilo de código e formatação no React

  • ESLint : linter para manter o estilo do código. Permite aplicar guias de estilo populares
  • Prettier : ferramenta que fornece formatação consistente de código. Pode ser usada junto com o ESLint
  • Biome : linter e formatador de código all-in-one rápido, baseado em Rust (antigo Rome). Está ganhando destaque como alternativa ao ESLint e ao Prettier
  • Recomendação:
    • Usar a combinação ESLint + Prettier
    • Considerar o Biome como nova alternativa

Autenticação no React

  • Lucia : solução de autenticação com suporte a OAuth e criptografia
  • Better Auth : um dos serviços de autenticação mais modernos
  • Auth.js : biblioteca de autenticação fácil de usar no Next.js e em vários frameworks
  • Serviços de autenticação pagos: Clerk , Kinde
  • Autenticação baseada em Firebase/Supabase: Supabase Auth
  • Outros serviços de autenticação: AuthKit , Auth0 , AWS Cognito
  • Recomendação:
    • Autenticação fácil: Auth.js, Supabase Auth
    • OAuth e recursos de segurança reforçados: Lucia, Better Auth

Back-end para React

  • Next.js : oferece renderização no lado do servidor (SSR) e rotas de API
  • Astro : framework ideal para criar sites estáticos
  • tRPC : solução para comunicação de API com segurança de tipos
  • Hono : framework de servidor ultraleve, que pode ser usado com React
  • Frameworks tradicionais de back-end em Node.js
    • Express : o framework de back-end em Node.js mais popular
    • Fastify : framework Node.js de alto desempenho
    • NestJS : indicado para aplicações de grande porte
    • Elysia : back-end moderno baseado em TypeScript
  • Outros frameworks de back-end
  • Recomendação:
    • Desenvolvimento full-stack com React: Next.js, tRPC
    • Quando precisar de um back-end tradicional: Express, Fastify

Banco de dados e ORM para React

  • Prisma : o ORM baseado em TypeScript mais popular
  • Drizzle ORM : ORM em destaque como alternativa ao Prisma
  • Outros ORMs e query builders: Kysely , database-js : exclusivo para PlanetScale
  • Bancos de dados serverless
  • Bancos de dados baseados em Firebase/Supabase
  • Recomendação:
    • Quando precisar de ORM: Prisma, Drizzle ORM
    • Banco de dados serverless: PlanetScale, Neon

Hospedagem para React

Bibliotecas de teste para React

  • Vitest : framework de testes mais rápido que o Jest e otimizado para projetos React modernos. Oferece execução de testes, asserções e recursos de mocking
  • Jest : framework de testes ainda muito usado em projetos mais antigos
  • React Testing Library (RTL)
    • biblioteca de referência para testar componentes React
    • oferece recursos de renderização de elementos HTML e simulação de eventos
  • Playwright
    • ferramenta de teste E2E (End-to-End) mais recomendada
    • permite testes automatizados em vários navegadores e dispositivos
  • Cypress : ferramenta de testes E2E para front-end, concorrendo com o Playwright
  • Recomendação:
    • Testes unitários/de integração: Vitest + React Testing Library
    • Testes E2E: Playwright (ou Cypress)
    • Opção para testes de snapshot: Vitest

React e estruturas de dados imutáveis

  • Immer :
    • biblioteca que ajuda a lidar facilmente com estruturas de dados imutáveis
    • permite implementar de forma concisa lógicas complexas de mudança de estado

Suporte a internacionalização (i18n) no React

  • FormatJS : biblioteca robusta de i18n com formatação de datas, números, moedas e mais
  • react-i18next : biblioteca de internacionalização mais usada no React
  • Lingui : oferece suporte robusto a múltiplos idiomas com configuração mínima
  • next-intl : biblioteca de internacionalização para projetos Next.js
  • Recomendação:
    • Escolha mais comum: react-i18next
    • Projetos baseados em Next.js: next-intl

Editores de texto rico para React

  • TipTap : editor de texto rico moderno com excelente extensibilidade
  • Plate : solução poderosa de editor baseada em Slate.js
  • Lexical : editor de texto rico leve criado pelo Facebook
  • Slate : framework de editor de texto rico altamente customizável
  • Recomendação:
    • Quando precisar de extensibilidade flexível: TipTap
    • Editor leve & otimizado: Lexical

Sistema de pagamentos para React

  • PayPal : um dos sistemas de pagamento mais usados
  • Stripe : oferece uma API de pagamentos amigável para desenvolvedores
  • Outras soluções de pagamento
  • Recomendação:
    • Solução de pagamento simples: Stripe
    • Se precisar de suporte ao PayPal: PayPal ou Braintree

Manipulação de hora e data no React

  • date-fns : oferece várias funções de data/hora, sendo leve
  • Day.js : alternativa leve ao Moment.js, com API semelhante
  • Recomendação:
    • Biblioteca mais leve: Day.js
    • Biblioteca com mais recursos: date-fns

Aplicações desktop com React

  • Electron :
    • framework para desenvolvimento de aplicações desktop multiplataforma
    • permite criar aplicações para Windows, macOS e Linux com tecnologias web (HTML, CSS, JS)
  • Tauri
    • alternativa mais leve ao Electron, usando backend em Rust
    • ideal para projetos em que segurança e desempenho são importantes
  • Recomendação:
    • Aproveitar as tecnologias web como estão: Electron
    • Leveza & segurança em primeiro lugar: Tauri

Upload de arquivos no React

  • react-dropzone : biblioteca baseada em hooks do React para upload de arquivos. Suporta funcionalidade de arrastar e soltar

Renderização de e-mails com React

  • react-email (recomendado) : permite criar e-mails HTML responsivos com componentes React
  • mjml : linguagem de marcação para gerar e-mails HTML com facilidade
  • Mailing : ajuda desenvolvedores a criar e gerenciar e-mails com facilidade
  • jsx-email : permite criar templates de e-mail usando sintaxe JSX
  • Provedores de serviço de e-mail:
  • Recomendação:
    • Criar e-mails no estilo React: react-email
    • Se precisar de serviço de e-mail: SendGrid, Mailgun

Drag and drop no React

  • @hello-pangea/dnd : projeto sucessor do react-beautiful-dnd, com uso simples
  • dnd kit : alta flexibilidade e possibilidade de customização, mas com curva de aprendizado
  • Recomendação:
    • Drag and drop fácil: @hello-pangea/dnd
    • Se precisar de customização: dnd kit

Desenvolvimento mobile com React

  • React Native : framework de desenvolvimento de aplicações mobile multiplataforma baseado em React
  • Expo : toolchain que facilita ainda mais o desenvolvimento com React Native
  • Tamagui : permite usar os mesmos componentes de UI na web e no mobile
  • Recomendação:
    • Desenvolvimento mobile: React Native + Expo
    • Unificação de UI entre web e mobile: Tamagui

Desenvolvimento VR/AR com React

  • react-three-fiber : biblioteca de renderização 3D baseada em Three.js. Há casos de suporte a VR
  • react-360 (arquivado) : framework de VR/AR desenvolvido pelo Facebook (sem manutenção atualmente)
  • aframe-react (não recebe mais manutenção) : biblioteca que permite usar A-Frame no React
  • Recomendação:
    • Biblioteca moderna de React para 3D/VR: react-three-fiber

Prototipagem de design para React

  • Figma : ferramenta mais popular para design e prototipagem de UI/UX
  • Excalidraw : permite criar wireframes e diagramas com aparência desenhada à mão
  • tldraw : ferramenta de esboço semelhante ao Excalidraw
  • Recomendação:
    • Design de UI/UX: Figma
    • Wireframes simples: Excalidraw

Documentação de componentes React

  • Storybook : principal ferramenta para desenvolvimento e documentação de componentes de UI
  • Docusaurus : gerador de sites estáticos para documentação técnica
  • Styleguidist : ferramenta de documentação de guias de estilo centrada em componentes React
  • React Cosmos : oferece um ambiente para desenvolver e testar componentes de UI de forma independente
  • Recomendação:
    • Documentação de componentes: Storybook
    • Criação de documentação técnica: Docusaurus

6 comentários

 
tmdeoans 2025-10-12

ssgoi.dev: biblioteca de transição de páginas para React

Agradeço se puder adicionar isso também, rs..

 
clastneo 2025-03-04

Acho que o Expo deve ser visto mais como o framework do RN, não é?

 
codemasterkimc 2025-03-04

Pelo que sei, nas buscas do Google Trends o redux fica com 90% e o zustand nem chega a 10%, então é engraçado ver o zustand aí em cima kkk

 
dooboo 2025-03-04

É o poder do legado.

Só para constar, o jQuery tem 90% de participação de mercado...

 
xguru 2025-03-04

Bibliotecas recomendadas para desenvolver apps com React em 2022

Parece que ele atualiza isso todo ano, mas já faz 3 anos. Vale a pena comparar.