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/learn/add-react-to-an-existing-project.md
+1-5Lines changed: 1 addition & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,11 +24,7 @@ Veja como recomendamos configurá-lo:
24
24
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/)).
25
25
3.**Configure seu servidor ou um proxy** para que todas as solicitações em `/some-app/` sejam tratadas pelo seu aplicativo React.
26
26
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.
32
28
33
29
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.
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:
@@ -135,11 +124,7 @@ O tipo que descreve as props do seu componente pode ser mais simples ou mais com
135
124
136
125
## Exemplos de Hooks {/*example-hooks*/}
137
126
138
-
<<<<<<< HEAD
139
127
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
143
128
144
129
Entretanto, podemos observar alguns exemplos de como fornecer tipos para hooks.
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`:
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
-
Thistechniqueworkswhenyouhaveadefaultvaluewhichmakessense-butthereareoccasionallycaseswhenyoudonot, andinthosecases`null`canfeelreasonableasadefaultvalue. However, toallowthetype-systemtounderstandyourcode, youneedtoexplicitlyset`ContextShape | null`onthe`createContext`.
311
-
>>>>>>>e07ac94bc2c1ffd817b13930977be93325e5bea9
312
288
313
289
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:
314
290
@@ -353,17 +329,13 @@ function MyComponent() {
353
329
354
330
### `useMemo` {/*typing-usememo*/}
355
331
356
-
<<<<<<<HEAD
357
-
O [hook`useMemo`](/reference/react/useMemo) cria/reacessaumvalormemoizadodeumachamadadefunção, executando-anovamenteapenasquandoasdependênciaspassadascomosegundoparâmetromudarem. Oresultadodachamadadohook é inferidopelovalorretornadopelafunçãodoprimeiroparâmetro. Você podesermaisexplícitoinformandoumtipocomoargumentoparaohook.
[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.
362
335
363
336
</Note>
364
337
365
-
The [`useMemo`](/reference/react/useMemo) Hookswillcreate/re-accessamemorizedvaluefromafunction 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.
367
339
368
340
```ts
369
341
// O tipo de visibleTodos é inferido pelo retorno do valor de filterTodos
O [`useCallback`](/reference/react/useCallback) forneceumareferênciaestável à umafunção, desdequeasdependênciaspassadasnosegundoparâmetrosejamasmesmas. Assimcomoo`useMemo`, otipodafunção é inferidoapartirdovalorderetornodafunçãodoprimeiroparâmetro, evocê podesermaisexplícitofornecendoumtipocomoargumentoaohook.
[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.
382
351
383
352
</Note>
384
353
385
-
The [`useCallback`](/reference/react/useCallback) provideastablereferencetoafunction 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.
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.
Dependingonyourcode-stylepreferences, youcouldusethe`*EventHandler`functionsfromtheReacttypestoprovidethetypefor 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:
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>`.
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).
Copy file name to clipboardExpand all lines: src/content/learn/you-might-not-need-an-effect.md
+2-10Lines changed: 2 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,11 +26,7 @@ Existem dois casos comuns em que você não precisa de Effects:
26
26
***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.
27
27
***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.
28
28
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.
34
30
35
31
Para ajudá-lo a adquirir a intuição correta, vamos dar uma olhada em alguns exemplos concretos comuns!
36
32
@@ -761,11 +757,7 @@ Isso garante que, quando seu Effect buscar dados, todas as respostas, exceto a
761
757
762
758
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).
763
759
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.**
769
761
770
762
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:
Copy file name to clipboardExpand all lines: src/content/reference/react-dom/client/createRoot.md
+1-5Lines changed: 1 addition & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -209,11 +209,7 @@ Quando seu HTML estiver vazio, o usuário verá uma página em branco até que o
209
209
<div id="root"></div>
210
210
```
211
211
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).*
Copy file name to clipboardExpand all lines: src/content/reference/react-dom/components/common.md
+1-5Lines changed: 1 addition & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -912,11 +912,7 @@ export default function Form() {
912
912
913
913
</Sandpack>
914
914
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)
920
916
921
917
Para casos de uso mais avançados, o atributo `ref` também aceita uma [função callback.](#ref-callback)
0 commit comments