Nova versão do React (19 RC)

Nova versão do React vem por aí e quero trazer um resumo para vocês de todas as novas mudanças:

  1. Server Actions Ações do servidor são funções assíncronas executadas no servidor. Eles podem ser usados em componentes de servidor e cliente para lidar com envios de formulários e mutações de dados. O que já era uma realidade no Next.js mas agora vem com suporte nativo no React

  2. useTransition Este hook servirá para fazer requisições assíncronas, do qual ele irá receber um boolean que indicará se a função está executando e uma function que, quando disparada, irá iniciar a a transition mudando o estado do boolean.

  3. useActionState Este novo hook aceita uma função e retorna uma ação agrupada para chamada. Quando a Ação encapsulada for chamada, useActionState retornará o último resultado da action e o estado pendente da action como pending.

  4. Form actions Agora será possível passar um atributo action na própria tag form, disparando as server functions. Assim como um novo hook chamado useFormStatus que lê o estado do <form> pai como se ele fosse um provider.

  5. Nova API use Uma nova função que poderemos utilizar para consumir contextos e Promises. Automaticamente o React irá dar um suspense no componente, sem a necessidade de utilizar async/await (Para mim é a implementação mais sensacional, adeus useEffect 👋🏽 ).

  6. ref como propriedade Agora as refs virão como props do componente, mais ou menos como funciona o children. Finalmente não mais utilizaremos o useRef (que ninguém usava mesmo).

  7. Context como provider Agora o context servirá como próprio provider, logo agora não precisará mais criar um contexto e um provider, os dois serão um só.


Claro que este é apenas um resumo, para ver mais você pode acessar a documentação oficial do React que deixei na fonte.

Mas me diz aí, você está animado para as novas mudanças?

Estou gostando que o time do React está melhorando a experiência dos devs, foi uma maravilha quando vi esse update do ref que é muito trabalhoso fazer, tendo que usar useRef e forwardRef.

A nova API do use também vai ser uma mão na roda, useEffect é um hook bastante delicado, muito fácil cair no erro com ele.

Estou animado com essas alterações, muito bom também ver outros frameworks além do Next implementando Server Actions :p

Nossa velho, esse tal do useRef ja me tirou muito o sono. Já fiz um relacionamento inteiro de um app a três anos atrás que funciona até hoje, mas eu não sei explicar como funciona huahuahua.