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
`"use memo"` marca uma função para otimização do React Compiler.
7
+
`"use memo"` marca uma função para otimização pelo React Compiler.
9
8
10
9
</Intro>
11
10
12
11
<Note>
13
12
14
-
Na maioria dos casos, você não precisa de `"use memo"`. Ele é usado principalmente no modo `annotation`, onde você deve marcar explicitamente as funções para otimização. No modo `infer`, o compilador detecta automaticamente componentes e hooks por seus padrões de nomenclatura (PascalCase para componentes, prefixo `use` para hooks). Se um componente ou hook não estiver sendo compilado no modo `infer`, você deve corrigir sua convenção de nomenclatura em vez de forçar a compilação com `"use memo"`.
13
+
Na maioria dos casos, você não precisa de `"use memo"`. Ele é primariamente necessário no modo `annotation`, onde você deve marcar explicitamente as funções para otimização. No modo `infer`, o compilador detecta automaticamente componentes e hooks por seus padrões de nomenclatura (PascalCase para componentes, prefixo `use` para hooks). Se um componente ou hook não estiver sendo compilado no modo `infer`, você deve corrigir sua convenção de nomenclatura em vez de forçar a compilação com `"use memo"`.
15
14
16
15
</Note>
17
16
@@ -23,53 +22,53 @@ Na maioria dos casos, você não precisa de `"use memo"`. Ele é usado principal
23
22
24
23
### `"use memo"` {/*use-memo*/}
25
24
26
-
Adicione `"use memo"` no início de uma função para marcá-la para otimização do React Compiler.
25
+
Adicione `"use memo"` no início de uma função para marcá-la para otimização pelo React Compiler.
27
26
28
27
```js {1}
29
-
functionMyComponent() {
28
+
functionMeuComponente() {
30
29
"use memo";
31
30
// ...
32
31
}
33
32
```
34
33
35
-
Quando uma função contém `"use memo"`, o React Compiler irá analisá-la e otimizá-la durante o tempo de construção. O compilador irá automaticamente memorizar valores e componentes para evitar recomputações e re-renderizações desnecessárias.
34
+
Quando uma função contém `"use memo"`, o React Compiler a analisará e otimizará durante o tempo de compilação. O compilador automaticamente memorizará valores e componentes para prevenir recálculos e re-renderizações desnecessárias.
36
35
37
36
#### Ressalvas {/*caveats*/}
38
37
39
-
*`"use memo"` deve estar no início do corpo de uma função, antes de quaisquer imports ou outro código (comentários são OK).
40
-
* A diretiva deve ser escrita com aspas duplas ou simples, não crases.
38
+
*`"use memo"` deve estar no início do corpo da função, antes de quaisquer imports ou outro código (comentários são permitidos).
39
+
* A diretiva deve ser escrita com aspas duplas ou simples, não com crases.
41
40
* A diretiva deve corresponder exatamente a `"use memo"`.
42
-
*Somente a primeira diretiva em uma função é processada; diretivas adicionais são ignoradas.
41
+
*Apenas a primeira diretiva em uma função é processada; diretivas adicionais são ignoradas.
43
42
* O efeito da diretiva depende da sua configuração de [`compilationMode`](/reference/react-compiler/compilationMode).
44
43
45
44
### Como `"use memo"` marca funções para otimização {/*how-use-memo-marks*/}
46
45
47
-
Em um aplicativo React que usa o React Compiler, as funções são analisadas no tempo de construção para determinar se podem ser otimizadas. Por padrão, o compilador infere automaticamente quais componentes memorizar, mas isso pode depender da sua configuração de [`compilationMode`](/reference/react-compiler/compilationMode) se você a tiver definido.
46
+
Em um aplicativo React que usa o React Compiler, as funções são analisadas no tempo de compilação para determinar se podem ser otimizadas. Por padrão, o compilador infere automaticamente quais componentes memorizar, mas isso pode depender da sua configuração de [`compilationMode`](/reference/react-compiler/compilationMode), se você a definiu.
48
47
49
48
`"use memo"` marca explicitamente uma função para otimização, substituindo o comportamento padrão:
50
49
51
-
* No modo `annotation`: Somente funções com `"use memo"` são otimizadas
52
-
* No modo `infer`: O compilador usa heurísticas, mas `"use memo"` força a otimização
53
-
* No modo `all`: Tudo é otimizado por padrão, tornando `"use memo"` redundante
50
+
* No modo `annotation`: Apenas funções com `"use memo"` são otimizadas.
51
+
* No modo `infer`: O compilador usa heurísticas, mas `"use memo"` força a otimização.
52
+
* No modo `all`: Tudo é otimizado por padrão, tornando `"use memo"` redundante.
54
53
55
-
A diretiva cria um limite claro em seu código base entre código otimizado e não otimizado, dando a você controle preciso sobre o processo de compilação.
54
+
A diretiva cria um limite claro em sua base de código entre código otimizado e não otimizado, dando a você controle granular sobre o processo de compilação.
56
55
57
56
### Quando usar `"use memo"` {/*when-to-use*/}
58
57
59
-
Você deve considerar o uso de`"use memo"` quando:
58
+
Você deve considerar usar`"use memo"` quando:
60
59
61
-
#### Você está usando o modo annotation {/*annotation-mode-use*/}
62
-
Em `compilationMode: 'annotation'`, a diretiva é necessária para qualquer função que você deseja otimizar:
60
+
#### Você está usando o modo de anotação {/*annotation-mode-use*/}
61
+
Em `compilationMode: 'annotation'`, a diretiva é necessária para qualquer função que você queira otimizar:
63
62
64
63
```js
65
64
// ✅ Este componente será otimizado
66
-
functionOptimizedList() {
65
+
functionListaOtimizada() {
67
66
"use memo";
68
67
// ...
69
68
}
70
69
71
70
// ❌ Este componente não será otimizado
72
-
functionSimpleWrapper() {
71
+
functionWrapperSimples() {
73
72
// ...
74
73
}
75
74
```
@@ -79,13 +78,13 @@ Comece com o modo `annotation` e otimize seletivamente componentes estáveis:
79
78
80
79
```js
81
80
// Comece otimizando componentes folha
82
-
functionButton({ onClick, children }) {
81
+
functionBotao({ onClick, children }) {
83
82
"use memo";
84
83
// ...
85
84
}
86
85
87
-
//Mova-se gradualmente pela árvore conforme você verifica o comportamento
88
-
functionButtonGroup({ buttons }) {
86
+
//Gradualmente suba na árvore conforme verifica o comportamento
87
+
functionGrupoDeBotoes({ botoes }) {
89
88
"use memo";
90
89
// ...
91
90
}
@@ -110,29 +109,29 @@ module.exports = {
110
109
};
111
110
```
112
111
113
-
#### Modo annotation {/*annotation-mode-example*/}
112
+
#### Modo de anotação {/*annotation-mode-example*/}
114
113
```js
115
114
// ✅ Otimizado com "use memo"
116
-
functionProductCard({ product }) {
115
+
functionCartaoProduto({ produto }) {
117
116
"use memo";
118
117
// ...
119
118
}
120
119
121
120
// ❌ Não otimizado (sem diretiva)
122
-
functionProductList({ products }) {
121
+
functionListaProdutos({ produtos }) {
123
122
// ...
124
123
}
125
124
```
126
125
127
-
#### Modo infer (padrão) {/*infer-mode-example*/}
126
+
#### Modo Infer (padrão) {/*infer-mode-example*/}
128
127
```js
129
128
// Automaticamente memorizado porque este é nomeado como um Componente
130
-
functionComplexDashboard({ data }) {
129
+
functionDashboardComplexo({ data }) {
131
130
// ...
132
131
}
133
132
134
133
// Ignorado: Não é nomeado como um Componente
135
-
functionsimpleDisplay({ text }) {
134
+
functionexibicaoSimples({ texto }) {
136
135
// ...
137
136
}
138
137
```
@@ -147,11 +146,11 @@ No modo `infer`, o compilador detecta automaticamente componentes e hooks por se
147
146
148
147
Para confirmar que seu componente está sendo otimizado:
149
148
150
-
1. Verifique a saída compilada em sua construção
151
-
2. Use o React DevTools para verificar o selo Memo ✨
149
+
1. Verifique a saída compilada em seu build.
150
+
2. Use o React DevTools para verificar o selo Memo ✨.
152
151
153
-
### Veja também {/*see-also*/}
152
+
### Ver também {/*see-also*/}
154
153
155
-
*[`"use no memo"`](/reference/react-compiler/directives/use-no-memo) - Desativar a compilação
156
-
*[`compilationMode`](/reference/react-compiler/compilationMode) - Configurar o comportamento da compilação
157
-
*[React Compiler](/learn/react-compiler) - Guia de primeiros passos
154
+
*[`"use no memo"`](/reference/react-compiler/directives/use-no-memo) - Desativar compilação
155
+
*[`compilationMode`](/reference/react-compiler/compilationMode) - Configurar comportamento de compilação
156
+
*[React Compiler](/learn/react-compiler) - Guia de início rápido
0 commit comments