Skip to content

Commit 9554245

Browse files
committed
fix: resolve merge conflicts and update documentation
1 parent cb5cc1c commit 9554245

26 files changed

+63
-226
lines changed

src/content/learn/add-react-to-an-existing-project.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,7 @@ Veja como recomendamos configurá-lo:
2424
2. **Especifique `/some-app` como o *caminho base*** na configuração do seu framework (veja como: [Next.js](https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath), [Gatsby](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/path-prefix/)).
2525
3. **Configure seu servidor ou um proxy** para que todas as solicitações em `/some-app/` sejam tratadas pelo seu aplicativo React.
2626

27-
<<<<<<< HEAD
28-
Isso garante que a parte React do seu aplicativo possa [se beneficiar das melhores práticas](/learn/start-a-new-react-project#can-i-use-react-without-a-framework) embutidas nesses frameworks.
29-
=======
30-
This ensures the React part of your app can [benefit from the best practices](/learn/build-a-react-app-from-scratch#consider-using-a-framework) baked into those frameworks.
31-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
27+
Isso garante que a parte React do seu aplicativo possa [se beneficiar das melhores práticas](/learn/build-a-react-app-from-scratch#consider-using-a-framework) embutidas nesses frameworks.
3228

3329
Muitos frameworks baseados em React são full stack e permitem que seu aplicativo React tire proveito do servidor. No entanto, você pode usar a mesma abordagem mesmo se não puder ou não quiser executar JavaScript no servidor. Nesse caso, exponha os HTML/CSS/JS exportados ([saída `next export`](https://nextjs.org/docs/advanced-features/static-html-export) para o Next.js, padrão para o Gatsby) em `/some-app/` em vez disso.
3430

src/content/learn/typescript.md

Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,16 @@ TypeScript é uma forma popular de adicionar definições de tipos à bases de c
1111

1212
<YouWillLearn>
1313

14-
<<<<<<< HEAD
1514
* [TypeScript com Componentes React](/learn/typescript#typescript-with-react-components)
1615
* [Exemplos de tipagem com hooks](/learn/typescript#example-hooks)
1716
* [Tipos úteis do `@types/react`](/learn/typescript/#useful-types)
1817
* [Conteúdo adicional para aprendizagem](/learn/typescript/#further-learning)
19-
=======
20-
* [TypeScript with React Components](/learn/typescript#typescript-with-react-components)
21-
* [Examples of typing with Hooks](/learn/typescript#example-hooks)
22-
* [Common types from `@types/react`](/learn/typescript#useful-types)
23-
* [Further learning locations](/learn/typescript#further-learning)
24-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
2518

2619
</YouWillLearn>
2720

2821
## Instalação {/*installation*/}
2922

30-
<<<<<<< HEAD
31-
Todos os [frameworks React em produção](/learn/start-a-new-react-project#production-grade-react-frameworks) oferecem suporte para o uso de TypeScript. Siga o guia específico do framework para instalação:
32-
=======
33-
All [production-grade React frameworks](/learn/start-a-new-react-project#full-stack-frameworks) offer support for using TypeScript. Follow the framework specific guide for installation:
34-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
23+
Todos os [frameworks React em produção](/learn/start-a-new-react-project#full-stack-frameworks) oferecem suporte para o uso de TypeScript. Siga o guia específico do framework para instalação:
3524

3625
- [Next.js](https://nextjs.org/docs/app/building-your-application/configuring/typescript)
3726
- [Remix](https://remix.run/docs/en/1.19.2/guides/typescript)
@@ -135,11 +124,7 @@ O tipo que descreve as props do seu componente pode ser mais simples ou mais com
135124

136125
## Exemplos de Hooks {/*example-hooks*/}
137126

138-
<<<<<<< HEAD
139127
As definições de tipos em `@types/react` incluem tipos para os hooks nativos, então você pode usá-los em seus componentes sem nenhuma configuração adicional. Eles são construídos levando em conta o código que você escreve em seu componente, então você terá a [inferência de tipo](https://www.typescriptlang.org/pt/docs/handbook/type-inference.html) na maior parte do tempo e idealmente você não precisará se preocupar com as minúcias de fornecer tipos.
140-
=======
141-
The type definitions from `@types/react` include types for the built-in Hooks, so you can use them in your components without any additional setup. They are built to take into account the code you write in your component, so you will get [inferred types](https://www.typescriptlang.org/docs/handbook/type-inference.html) a lot of the time and ideally do not need to handle the minutiae of providing the types.
142-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
143128

144129
Entretanto, podemos observar alguns exemplos de como fornecer tipos para hooks.
145130

@@ -154,13 +139,8 @@ const [enabled, setEnabled] = useState(false);
154139

155140
Isso atribuirá o tipo `boolean` a `enabled`, e `setEnabled` será uma função que aceita um argumento `boolean` ou uma função que retorna um `boolean`. Se você quiser fornecer explicitamente um tipo para o estado, você pode fazê-lo fornecendo um argumento de tipo para a chamada `useState`:
156141

157-
<<<<<<< HEAD
158-
```ts
159-
// Explicitamente define o tipo como "boolean"
160-
=======
161142
```ts
162-
// Explicitly set the type to "boolean"
163-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
143+
// Explicitamente define o tipo como "boolean"
164144
const [enabled, setEnabled] = useState<boolean>(false);
165145
```
166146

@@ -304,11 +284,7 @@ export default App = AppTSX;
304284

305285
</Sandpack>
306286

307-
<<<<<<< HEAD
308287
Essa técnica funciona quando você tem um valor padrão que faz sentido, mas há casos onde isso não acontece, e nesses casos utilizar `null` como um valor padrão pode parecer razoável. Porém, para permitir que o sistema de tipos compreenda o seu código, você precisa explicitamente definir `ContextShape | null` na chamada de `createContext`.
309-
=======
310-
This technique works when you have a default value which makes sense - but there are occasionally cases when you do not, and in those cases `null` can feel reasonable as a default value. However, to allow the type-system to understand your code, you need to explicitly set `ContextShape | null` on the `createContext`.
311-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
312288

313289
Isso causa um problema onde é necessário eliminar o `| null` no tipo onde se consome o contexto. A recomendação é fazer com que o hook faça uma checagem de sua existência em tempo de execução e cause um erro caso não exista:
314290

@@ -353,17 +329,13 @@ function MyComponent() {
353329

354330
### `useMemo` {/*typing-usememo*/}
355331

356-
<<<<<<< HEAD
357-
O [hook `useMemo`](/reference/react/useMemo) cria/reacessa um valor memoizado de uma chamada de função, executando-a novamente apenas quando as dependências passadas como segundo parâmetro mudarem. O resultado da chamada do hook é inferido pelo valor retornado pela função do primeiro parâmetro. Você pode ser mais explícito informando um tipo como argumento para o hook.
358-
=======
359332
<Note>
360333

361-
[React Compiler](/learn/react-compiler) automatically memoizes values and functions, reducing the need for manual `useMemo` calls. You can use the compiler to handle memoization automatically.
334+
[React Compiler](/learn/react-compiler) automaticamente memoiza valores e funções, reduzindo a necessidade de chamadas manuais de `useMemo`. Você pode usar o compilador para lidar com a memoização automaticamente.
362335

363336
</Note>
364337

365-
The [`useMemo`](/reference/react/useMemo) Hooks will create/re-access a memorized value from a function call, re-running the function only when dependencies passed as the 2nd parameter are changed. The result of calling the Hook is inferred from the return value from the function in the first parameter. You can be more explicit by providing a type argument to the Hook.
366-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
338+
O [hook `useMemo`](/reference/react/useMemo) cria/reacessa um valor memoizado de uma chamada de função, executando-a novamente apenas quando as dependências passadas como segundo parâmetro mudarem. O resultado da chamada do hook é inferido pelo valor retornado pela função do primeiro parâmetro. Você pode ser mais explícito informando um tipo como argumento para o hook.
367339

368340
```ts
369341
// O tipo de visibleTodos é inferido pelo retorno do valor de filterTodos
@@ -373,17 +345,13 @@ const visibleTodos = useMemo(() => filterTodos(todos, tab), [todos, tab]);
373345

374346
### `useCallback` {/*typing-usecallback*/}
375347

376-
<<<<<<< HEAD
377-
O [`useCallback`](/reference/react/useCallback) fornece uma referência estável à uma função, desde que as dependências passadas no segundo parâmetro sejam as mesmas. Assim como o `useMemo`, o tipo da função é inferido a partir do valor de retorno da função do primeiro parâmetro, e você pode ser mais explícito fornecendo um tipo como argumento ao hook.
378-
=======
379348
<Note>
380349

381-
[React Compiler](/learn/react-compiler) automatically memoizes values and functions, reducing the need for manual `useCallback` calls. You can use the compiler to handle memoization automatically.
350+
[React Compiler](/learn/react-compiler) automaticamente memoiza valores e funções, reduzindo a necessidade de chamadas manuais de `useCallback`. Você pode usar o compilador para lidar com a memoização automaticamente.
382351

383352
</Note>
384353

385-
The [`useCallback`](/reference/react/useCallback) provide a stable reference to a function as long as the dependencies passed into the second parameter are the same. Like `useMemo`, the function's type is inferred from the return value of the function in the first parameter, and you can be more explicit by providing a type argument to the Hook.
386-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
354+
O [`useCallback`](/reference/react/useCallback) fornece uma referência estável à uma função, desde que as dependências passadas no segundo parâmetro sejam as mesmas. Assim como o `useMemo`, o tipo da função é inferido a partir do valor de retorno da função do primeiro parâmetro, e você pode ser mais explícito fornecendo um tipo como argumento ao hook.
387355

388356

389357
```ts
@@ -394,11 +362,7 @@ const handleClick = useCallback(() => {
394362

395363
Ao trabalhar no _strict mode_ do TypeScript, o `useCallback` requer a adição de tipos para os parâmetros da callback. Isso ocorre porque o tipo da callback é inferido a partir do valor de retorno da função e, sem parâmetros, o tipo não pode ser totalmente compreendido.
396364

397-
<<<<<<< HEAD
398-
Dependendo de suas preferências de estilo de código, você pode usar as funções `*EventHandler` dos tipos do React para fornecer o tipo do manipulador de eventos ao mesmo tempo em que define a callback:
399-
=======
400-
Depending on your code-style preferences, you could use the `*EventHandler` functions from the React types to provide the type for the event handler at the same time as defining the callback:
401-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
365+
Dependendo de suas preferências de estilo de código, você pode usar as funções `*EventHandler` dos tipos do React para fornecer o tipo do manipulador de eventos ao mesmo tempo em que define a callback:
402366

403367
```ts
404368
import { useState, useCallback } from 'react';
@@ -481,11 +445,7 @@ interface ModalRendererProps {
481445
}
482446
```
483447

484-
<<<<<<< HEAD
485448
Note que você não pode usar o TypeScript para descrever que os filhos são de um determinado tipo de elemento JSX, portanto, não é possível usar o sistema de tipos para descrever um componente que só aceita filhos `<li>`.
486-
=======
487-
Note, that you cannot use TypeScript to describe that the children are a certain type of JSX elements, so you cannot use the type-system to describe a component which only accepts `<li>` children.
488-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
489449

490450
Você pode ver todos os exemplos de ambos `React.ReactNode` e `React.ReactElement` com checagem de tipos com [este playground do TypeScript](https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgIilQ3wChSB6CxYmAOmXRgDkIATJOdNJMGAZzgwAFpxAR+8YADswAVwGkZMJFEzpOjDKw4AFHGEEBvUnDhphwADZsi0gFw0mDWjqQBuUgF9yaCNMlENzgAXjgACjADfkctFnYkfQhDAEpQgD44AB42YAA3dKMo5P46C2tbJGkvLIpcgt9-QLi3AEEwMFCItJDMrPTTbIQ3dKywdIB5aU4kKyQQKpha8drhhIGzLLWODbNs3b3s8YAxKBQAcwXpAThMaGWDvbH0gFloGbmrgQfBzYpd1YjQZbEYARkB6zMwO2SHSAAlZlYIBCdtCRkZpHIrFYahQYQD8UYYFA5EhcfjyGYqHAXnJAsIUHlOOUbHYhMIIHJzsI0Qk4P9SLUBuRqXEXEwAKKfRZcNA8PiCfxWACecAAUgBlAAacFm80W-CU11U6h4TgwUv11yShjgJjMLMqDnN9Dilq+nh8pD8AXgCHdMrCkWisVoAet0R6fXqhWKhjKllZVVxMcavpd4Zg7U6Qaj+2hmdG4zeRF10uu-Aeq0LBfLMEe-V+T2L7zLVu+FBWLdLeq+lc7DYFf39deFVOotMCACNOCh1dq219a+30uC8YWoZsRyuEdjkevR8uvoVMdjyTWt4WiSSydXD4NqZP4AymeZE072ZzuUeZQKheQgA).
491451

src/content/learn/you-might-not-need-an-effect.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@ Existem dois casos comuns em que você não precisa de Effects:
2626
* **Você não precisa de Effects para manipular seus dados para renderização.** Por exemplo, digamos que você queira filtrar uma lista antes de exibi-la. Você pode ficar tentado a escrever um Effect que atualiza um state quando a lista for alterada. No entanto, isso é ineficiente. Quando você atualizar o state, o React primeiro executará as funções dos componentes para calcular o que deve estar em tela. Em seguida, o React ["aplica"](/learn/render-and-commit) essas alterações no DOM, atualizando a tela. Depois, o React executará seus Effects. Se seu Effect *também* atualizar o state imediatamente, todo o processo será reiniciado do zero! Para evitar renderizações desnecessárias, transforme todos os dados na raiz de seus componentes. Esse código será reexecutado automaticamente sempre que suas props ou state forem alterados.
2727
* **Você não precisa de Effects para lidar com eventos do usuário.** Por exemplo, digamos que você queira enviar uma requisição POST para `/api/buy` e mostrar uma notificação quando o usuário comprar um produto. No manipulador de evento de clique do botão Comprar, você sabe exatamente o que aconteceu. Quando um Effect é executado, você não sabe *o que* o usuário fez (por exemplo, qual botão foi clicado). É por isso que você normalmente tratará os eventos do usuário nos manipuladores de evento correspondentes.
2828

29-
<<<<<<< HEAD
30-
Você *precisa* de Effects para [sincronizar](/learn/synchronizing-with-effects#what-are-effects-and-how-are-they-different-from-events) com sistemas externos. Por exemplo, você pode escrever um Effect que mantenha um _widget_ jQuery sincronizado com o state do React. Também é possível buscar dados com Effects: por exemplo, você pode sincronizar os resultados da pesquisa com o termo que você pesquisou. Lembre-se de que [frameworks](/leaxrn/start-a-new-react-project#production-grade-react-frameworks) modernos oferecem mecanismos internos de busca de dados mais eficientes do que escrever Effects diretamente em seus componentes.
31-
=======
32-
You *do* need Effects to [synchronize](/learn/synchronizing-with-effects#what-are-effects-and-how-are-they-different-from-events) with external systems. For example, you can write an Effect that keeps a jQuery widget synchronized with the React state. You can also fetch data with Effects: for example, you can synchronize the search results with the current search query. Keep in mind that modern [frameworks](/learn/start-a-new-react-project#full-stack-frameworks) provide more efficient built-in data fetching mechanisms than writing Effects directly in your components.
33-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
29+
Você *precisa* de Effects para [sincronizar](/learn/synchronizing-with-effects#what-are-effects-and-how-are-they-different-from-events) com sistemas externos. Por exemplo, você pode escrever um Effect que mantenha um _widget_ jQuery sincronizado com o state do React. Também é possível buscar dados com Effects: por exemplo, você pode sincronizar os resultados da pesquisa com o termo que você pesquisou. Lembre-se de que [frameworks](/learn/start-a-new-react-project#full-stack-frameworks) modernos oferecem mecanismos internos de busca de dados mais eficientes do que escrever Effects diretamente em seus componentes.
3430

3531
Para ajudá-lo a adquirir a intuição correta, vamos dar uma olhada em alguns exemplos concretos comuns!
3632

@@ -761,11 +757,7 @@ Isso garante que, quando seu Effect buscar dados, todas as respostas, exceto a
761757
762758
Lidar com condições de corrida não é a única dificuldade na implementação da busca de dados. Talvez você também queira pensar em armazenar respostas em cache (para que o usuário possa clicar em Voltar e ver a tela anterior instantaneamente), como buscar dados no servidor (para que o HTML inicial renderizado pelo servidor contenha o conteúdo buscado em vez de um spinner) e como evitar cascatas de rede (para que um filho possa buscar dados sem esperar por todos os pais).
763759
764-
<<<<<<< HEAD
765-
**Esses problemas se aplicam a qualquer biblioteca de interface do usuário, não apenas ao React. Resolvê-los não é trivial, e é por isso que os [frameworks modernos](/learn/start-a-new-react-project#production-grade-react-frameworks) fornecem mecanismos internos de busca de dados mais eficientes do que a busca de dados nos Effects.**
766-
=======
767-
**These issues apply to any UI library, not just React. Solving them is not trivial, which is why modern [frameworks](/learn/start-a-new-react-project#full-stack-frameworks) provide more efficient built-in data fetching mechanisms than fetching data in Effects.**
768-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
760+
**Esses problemas se aplicam a qualquer biblioteca de interface do usuário, não apenas ao React. Resolvê-los não é trivial, e é por isso que os [frameworks modernos](/learn/start-a-new-react-project#full-stack-frameworks) fornecem mecanismos internos de busca de dados mais eficientes do que a busca de dados nos Effects.**
769761
770762
Se você não usa um framework (e não quer criar o seu próprio), mas gostaria de tornar a busca de dados dos Effects mais ergonômica, considere extrair sua lógica de busca em um Hook personalizado, como neste exemplo:
771763

src/content/reference/react-dom/client/createRoot.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,7 @@ Quando seu HTML estiver vazio, o usuário verá uma página em branco até que o
209209
<div id="root"></div>
210210
```
211211
212-
<<<<<<< HEAD
213-
Isso pode parecer muito lento! Para resolver isso, você pode gerar o HTML inicial a partir de seus componentes [no servidor ou durante a build.](/reference/react-dom/server) Então seus visitantes podem ler texto, ver imagens e clicar em links antes que qualquer código JavaScript seja carregado. Recomendamos [usar um framework](/learn/start-a-new-react-project#production-grade-react-frameworks) que faça essa otimização imediatamente. Dependendo de quando ele é executado, isso é chamado de *server-side rendering (SSR)* ou *static site generation (SSG).*
214-
=======
215-
This can feel very slow! To solve this, you can generate the initial HTML from your components [on the server or during the build.](/reference/react-dom/server) Then your visitors can read text, see images, and click links before any of the JavaScript code loads. We recommend [using a framework](/learn/start-a-new-react-project#full-stack-frameworks) that does this optimization out of the box. Depending on when it runs, this is called *server-side rendering (SSR)* or *static site generation (SSG).*
216-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
212+
Isso pode parecer muito lento! Para resolver isso, você pode gerar o HTML inicial a partir de seus componentes [no servidor ou durante a build.](/reference/react-dom/server) Então seus visitantes podem ler texto, ver imagens e clicar em links antes que qualquer código JavaScript seja carregado. Recomendamos [usar um framework](/learn/start-a-new-react-project#full-stack-frameworks) que faça essa otimização imediatamente. Dependendo de quando ele é executado, isso é chamado de *server-side rendering (SSR)* ou *static site generation (SSG).*
217213
218214
</Note>
219215

src/content/reference/react-dom/components/common.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -912,11 +912,7 @@ export default function Form() {
912912
913913
</Sandpack>
914914
915-
<<<<<<< HEAD
916-
Leia mais sobre [manipulação de DOM com refs](/learn/manipulating-the-dom-with-refs) e [verifique mais exemplos.](/reference/react/useRef#examples-dom)
917-
=======
918-
Read more about [manipulating DOM with refs](/learn/manipulating-the-dom-with-refs) and [check out more examples.](/reference/react/useRef#usage)
919-
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
915+
Leia mais sobre [manipulação de DOM com refs](/learn/manipulating-the-dom-with-refs) e [verifique mais exemplos.](/reference/react/useRef#usage)
920916
921917
Para casos de uso mais avançados, o atributo `ref` também aceita uma [função callback.](#ref-callback)
922918

0 commit comments

Comments
 (0)