You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/blog/2022/03/29/react-v18.md
+15-13Lines changed: 15 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,8 +114,8 @@ Para mais informações, consulte esta postagem para [Batching automático para
114
114
115
115
Uma transition é um novo conceito no React para distinguir entre atualizações urgentes e não urgentes.
116
116
117
-
***Atualizações urgentes** refletem a interação direta, como digitar, clicar, pressionar e assim por diante.
118
-
***Atualizações de transition** fazem a transição da UI de uma visualização para outra.
117
+
***Atualizações urgentes** refletem a interação direta, como digitar, clicar, pressionar e assim por diante.
118
+
***Atualizações de transition** fazem a transição da UI de uma visualização para outra.
119
119
120
120
Atualizações urgentes como digitação, clique ou pressione, precisam de resposta imediata para corresponder às nossas intuições sobre como os objetos físicos se comportam. Caso contrário, eles parecem "errados". No entanto, as transitions são diferentes porque o usuário não espera ver cada valor intermediário na tela.
121
121
@@ -138,8 +138,8 @@ startTransition(() => {
138
138
139
139
Atualizações encapsuladas em startTransition são tratadas como não urgentes e serão interrompidas se atualizações mais urgentes, como cliques ou pressionamentos de teclas, chegarem. Se uma transition for interrompida pelo usuário (por exemplo, digitando vários caracteres em sequência), o React descartará o trabalho de renderização obsoleto que não foi finalizado e renderizará apenas a atualização mais recente.
140
140
141
-
*`useTransition`: um Hook para iniciar transitions, incluindo um valor para rastrear o estado pendente.
142
-
*`startTransition`: um método para iniciar transitions quando o Hook não pode ser usado.
141
+
*`useTransition`: um Hook para iniciar transitions, incluindo um valor para rastrear o estado pendente.
142
+
*`startTransition`: um método para iniciar transitions quando o Hook não pode ser usado.
143
143
144
144
As transitions optarão pela renderização concorrente, que permite que a atualização seja interrompida. Se o conteúdo re-suspender, as transitions também dizem ao React para continuar mostrando o conteúdo atual enquanto renderiza o conteúdo da transition em segundo plano (consulte o [Suspense RFC](https://github.com/reactjs/rfcs/blob/main/text/0213-suspense-in-react-18.md) para obter mais informações).
145
145
@@ -173,8 +173,8 @@ Nesta versão, aproveitamos a oportunidade para redesenhar as APIs que expomos p
173
173
174
174
Essas novas APIs agora são exportadas de `react-dom/client`:
175
175
176
-
*`createRoot`: Novo método para criar uma raiz para `render` ou `unmount`. Use-o em vez de `ReactDOM.render`. Os novos recursos no React 18 não funcionam sem ele.
177
-
*`hydrateRoot`: Novo método para hidratar um aplicativo renderizado no servidor. Use-o em vez de `ReactDOM.hydrate` em conjunto com as novas APIs do React DOM Server. Os novos recursos no React 18 não funcionam sem ele.
176
+
*`createRoot`: Novo método para criar uma raiz para `render` ou `unmount`. Use-o em vez de `ReactDOM.render`. Os novos recursos no React 18 não funcionam sem ele.
177
+
*`hydrateRoot`: Novo método para hidratar um aplicativo renderizado no servidor. Use-o em vez de `ReactDOM.hydrate` em conjunto com as novas APIs do React DOM Server. Os novos recursos no React 18 não funcionam sem ele.
178
178
179
179
`createRoot` e `hydrateRoot` aceitam uma nova opção chamada `onRecoverableError` caso você queira ser notificado quando o React se recuperar de erros durante a renderização ou hidratação para registro. Por padrão, o React usará [`reportError`](https://developer.mozilla.org/en-US/docs/Web/API/reportError), ou `console.error` nos navegadores mais antigos.
180
180
@@ -184,8 +184,8 @@ Essas novas APIs agora são exportadas de `react-dom/client`:
184
184
185
185
Essas novas APIs agora são exportadas de `react-dom/server` e têm suporte total para streaming Suspense no servidor:
186
186
187
-
*`renderToPipeableStream`: para streaming em ambientes Node.
188
-
*`renderToReadableStream`: para ambientes de tempo de execução de borda modernos, como Deno e Cloudflare workers.
187
+
*`renderToPipeableStream`: para streaming em ambientes Node.
188
+
*`renderToReadableStream`: para ambientes de tempo de execução de borda modernos, como Deno e Cloudflare workers.
189
189
190
190
O método `renderToString` existente continua funcionando, mas não é recomendado.
191
191
@@ -199,7 +199,9 @@ Esse recurso dará aos aplicativos React melhor desempenho imediato, mas requer
199
199
200
200
Para ajudar a expor esses problemas, o React 18 apresenta uma nova verificação somente para desenvolvimento no Strict Mode. Essa nova verificação desmontará e remontará automaticamente cada componente, sempre que um componente montar pela primeira vez, restaurando o estado anterior na segunda montagem.
201
201
202
-
Antes dessa alteração, o React montaria o componente e criaria os efeitos:```
202
+
Antes dessa alteração, o React montaria o componente e criaria os efeitos:
203
+
204
+
```
203
205
* React monta o componente.
204
206
* Layout effects são criados.
205
207
* Effects são criados.
@@ -227,7 +229,7 @@ Com o Modo Strict no React 18, o React irá simular a desmontagem e remontagem d
227
229
228
230
`useId` é um novo Hook para gerar IDs únicos tanto no cliente quanto no servidor, evitando incompatibilidades de hidratação. Ele é útil principalmente para bibliotecas de componentes que se integram com APIs de acessibilidade que exigem IDs únicos. Isso resolve um problema que já existe no React 17 e versões anteriores, mas é ainda mais importante no React 18 por causa de como o novo renderizador de servidor de streaming entrega o HTML fora de ordem. [Veja a documentação aqui](/reference/react/useId).
229
231
230
-
> Nota
232
+
> Note
231
233
>
232
234
> `useId`**não** serve para gerar [chaves em uma lista](/learn/rendering-lists#where-to-get-your-key). As chaves devem ser geradas a partir de seus dados.
233
235
@@ -243,15 +245,15 @@ Com o Modo Strict no React 18, o React irá simular a desmontagem e remontagem d
243
245
244
246
`useSyncExternalStore` é um novo Hook que permite que lojas externas suportem leituras simultâneas, forçando as atualizações da loja a serem síncronas. Ele remove a necessidade de useEffect ao implementar assinaturas em fontes de dados externas e é recomendado para qualquer biblioteca que se integra com estado externo ao React. [Veja a documentação aqui](/reference/react/useSyncExternalStore).
245
247
246
-
> Nota
248
+
> Note
247
249
>
248
250
> `useSyncExternalStore` destina-se a ser usado por bibliotecas, não código de aplicação.
249
251
250
252
#### useInsertionEffect {/*useinsertioneffect*/}
251
253
252
254
`useInsertionEffect` é um novo Hook que permite que bibliotecas CSS-in-JS abordem problemas de desempenho de injeção de estilos em renderização. A menos que você já tenha construído uma biblioteca CSS-in-JS, não esperamos que você use isso. Este Hook será executado após o DOM ser mutado, mas antes que os layout effects leiam o novo layout. Isso resolve um problema que já existe no React 17 e versões anteriores, mas é ainda mais importante no React 18 porque o React cede ao navegador durante a renderização concorrente, dando a ele a chance de recalcular o layout. [Veja a documentação aqui](/reference/react/useInsertionEffect).
253
255
254
-
> Nota
256
+
> Note
255
257
>
256
258
> `useInsertionEffect` destina-se a ser usado por bibliotecas, não código de aplicação.
257
259
@@ -334,4 +336,4 @@ Veja [Como Atualizar para o React 18](/blog/2022/03/08/react-18-upgrade-guide) p
334
336
* Adiciona suporte `lazy`. ([#24068](https://github.com/facebook/react/pull/24068) por [@gnoff](https://github.com/gnoff))
335
337
* Atualiza o plugin webpack para webpack 5 ([#22739](https://github.com/facebook/react/pull/22739) por [@michenly](https://github.com/michenly))
336
338
* Corrige um erro no carregador do Node. ([#22537](https://github.com/facebook/react/pull/22537) por [@btea](https://github.com/btea))
337
-
* Usa `globalThis` em vez de `window` para ambientes de borda. ([#22777](https://github.com/facebook/react/pull/22777) por [@huozhi](https://github.com/huozhi))
339
+
* Usa `globalThis` em vez de `window` para ambientes de borda. ([#22777](https://github.com/facebook/react/pull/22777) por [@huozhi](https://github.com/huozhi))
0 commit comments