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/reference/react/PureComponent.md
+33-33Lines changed: 33 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,18 +4,18 @@ title: PureComponent
4
4
5
5
<Pitfall>
6
6
7
-
We recommend defining components as functions instead of classes. [See how to migrate.](#alternatives)
7
+
Recomendamos definir componentes como funções em vez de classes. [Veja como migrar.](#alternatives)
8
8
9
9
</Pitfall>
10
10
11
11
<Intro>
12
12
13
-
`PureComponent`is similar to[`Component`](/reference/react/Component) but it skips re-renders for same props and state. Class components are still supported by React, but we don't recommend using them in new code.
13
+
`PureComponent`é semelhante a[`Component`](/reference/react/Component), mas ignora re-renderizações para as mesmas props e estado. Os componentes de classe ainda são suportados pelo React, mas não recomendamos o uso deles em novo código.
14
14
15
15
```js
16
16
classGreetingextendsPureComponent {
17
17
render() {
18
-
return<h1>Hello, {this.props.name}!</h1>;
18
+
return<h1>Olá, {this.props.name}!</h1>;
19
19
}
20
20
}
21
21
```
@@ -26,46 +26,46 @@ class Greeting extends PureComponent {
26
26
27
27
---
28
28
29
-
## Reference {/*reference*/}
29
+
## Referência {/*reference*/}
30
30
31
31
### `PureComponent` {/*purecomponent*/}
32
32
33
-
To skip re-rendering a class component for same props and state, extend`PureComponent`instead of[`Component`:](/reference/react/Component)
33
+
Para pular a re-renderização de um componente de classe para as mesmas props e estado, estenda`PureComponent`em vez de[`Component`:](/reference/react/Component)
34
34
35
35
```js
36
36
import { PureComponent } from'react';
37
37
38
38
classGreetingextendsPureComponent {
39
39
render() {
40
-
return<h1>Hello, {this.props.name}!</h1>;
40
+
return<h1>Olá, {this.props.name}!</h1>;
41
41
}
42
42
}
43
43
```
44
44
45
-
`PureComponent`is a subclass of`Component`and supports [all the `Component` APIs.](/reference/react/Component#reference)Extending`PureComponent`is equivalent to defining a custom [`shouldComponentUpdate`](/reference/react/Component#shouldcomponentupdate)method that shallowly compares props and state.
45
+
`PureComponent`é uma subclasse de`Component`e suporta [todas as APIs de `Component`.](/reference/react/Component#reference)Estender`PureComponent`é equivalente a definir um método customizado [`shouldComponentUpdate`](/reference/react/Component#shouldcomponentupdate)que compara superficialmente props e estado.
46
46
47
47
48
-
[See more examples below.](#usage)
48
+
[Veja mais exemplos abaixo.](#usage)
49
49
50
50
---
51
51
52
-
## Usage {/*usage*/}
52
+
## Uso {/*usage*/}
53
53
54
-
### Skipping unnecessary re-renders for class components {/*skipping-unnecessary-re-renders-for-class-components*/}
54
+
### Ignorando re-renderizações desnecessárias para componentes de classe {/*skipping-unnecessary-re-renders-for-class-components*/}
55
55
56
-
React normally re-renders a component whenever its parent re-renders. As an optimization, you can create a component that React will not re-render when its parent re-renders so long as its new props and state are the same as the old props and state. [Class components](/reference/react/Component)can opt into this behavior by extending`PureComponent`:
56
+
O React normalmente re-renderiza um componente sempre que seu pai re-renderiza. Como uma otimização, você pode criar um componente que o React não re-renderiza quando seu pai re-renderiza, desde que suas novas props e estado sejam iguais às antigas props e estado. [Os componentes de classe](/reference/react/Component)podem optar por esse comportamento estendendo`PureComponent`:
57
57
58
58
```js {1}
59
59
classGreetingextendsPureComponent {
60
60
render() {
61
-
return<h1>Hello, {this.props.name}!</h1>;
61
+
return<h1>Olá, {this.props.name}!</h1>;
62
62
}
63
63
}
64
64
```
65
65
66
-
A React component should always have [pure rendering logic.](/learn/keeping-components-pure)This means that it must return the same output if its props, state, and context haven't changed. By using`PureComponent`, you are telling React that your component complies with this requirement, so React doesn't need to re-render as long as its props and state haven't changed. However, your component will still re-render if a context that it's using changes.
66
+
Um componente React deve sempre ter [lógica de renderização pura.](/learn/keeping-components-pure)Isso significa que ele deve retornar a mesma saída se suas props, estado e contexto não tiverem mudado. Ao usar`PureComponent`, você está dizendo ao React que seu componente cumpre esse requisito, para que o React não precise re-renderizar enquanto suas props e estado não mudarem. No entanto, seu componente ainda re-renderizará se um contexto que ele está usando mudar.
67
67
68
-
In this example, notice that the `Greeting`component re-renders whenever `name`is changed (because that's one of its props), but not when`address`is changed (because it's not passed to`Greeting`as a prop):
68
+
Neste exemplo, note que o componente `Greeting` re-renderiza sempre que `name`é alterado (porque essa é uma de suas props), mas não quando`address`é alterado (porque não é passado para`Greeting`como uma prop):
We recommend defining components as functions instead of classes. [See how to migrate.](#alternatives)
112
+
Recomendamos definir componentes como funções em vez de classes. [Veja como migrar.](#alternatives)
113
113
114
114
</Pitfall>
115
115
116
116
---
117
117
118
-
## Alternatives {/*alternatives*/}
118
+
## Alternativas {/*alternatives*/}
119
119
120
-
### Migrating from a `PureComponent`class component to a function {/*migrating-from-a-purecomponent-class-component-to-a-function*/}
120
+
### Migrando de um componente de classe `PureComponent`para uma função {/*migrating-from-a-purecomponent-class-component-to-a-function*/}
121
121
122
-
We recommend using function components instead of [class components](/reference/react/Component)in new code. If you have some existing class components using `PureComponent`, here is how you can convert them. This is the original code:
122
+
Recomendamos usar componentes de função em vez de [componentes de classe](/reference/react/Component)em novo código. Se você tiver alguns componentes de classe existentes usando `PureComponent`, aqui está como você pode convertê-los. Este é o código original:
When you [convert this component from a class to a function,](/reference/react/Component#alternatives)wrap it in[`memo`:](/reference/react/memo)
164
+
Quando você [converter este componente de uma classe para uma função,](/reference/react/Component#alternatives)encapsule-o em[`memo`:](/reference/react/memo)
165
165
166
166
<Sandpack>
167
167
168
168
```js
169
169
import { memo, useState } from'react';
170
170
171
171
constGreeting=memo(functionGreeting({ name }) {
172
-
console.log("Greeting was rendered at", newDate().toLocaleTimeString());
173
-
return<h3>Hello{name &&', '}{name}!</h3>;
172
+
console.log("Greeting foi renderizado em", newDate().toLocaleTimeString());
173
+
return<h3>Olá{name &&', '}{name}!</h3>;
174
174
});
175
175
176
176
exportdefaultfunctionMyApp() {
@@ -179,11 +179,11 @@ export default function MyApp() {
Unlike `PureComponent`, [`memo`](/reference/react/memo)does not compare the new and the old state. In function components, calling the[`set` function](/reference/react/useState#setstate)with the same state [already prevents re-renders by default,](/reference/react/memo#updating-a-memoized-component-using-state)even without`memo`.
206
+
Diferente de `PureComponent`, [`memo`](/reference/react/memo)não compara o novo e o antigo estado. Em componentes de função, chamar a[`função set`](/reference/react/useState#setstate)com o mesmo estado [já previne re-renderizações por padrão,](/reference/react/memo#updating-a-memoized-component-using-state)mesmo sem`memo`.
0 commit comments