Skip to content

Commit 7526918

Browse files
committed
translate eslint-plugin-react-hooks globals lint to Spanish
Signed-off-by: “Sebastian <64795732+slegarraga@users.noreply.github.com>
1 parent e91a76a commit 7526918

1 file changed

Lines changed: 84 additions & 0 deletions

File tree

  • src/content/reference/eslint-plugin-react-hooks/lints
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: globals
3+
---
4+
5+
<Intro>
6+
7+
Valida la asignación o mutación de globales durante el renderizado, como parte de garantizar que los [efectos secundarios deben ejecutarse fuera del renderizado](/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render).
8+
9+
</Intro>
10+
11+
## Detalles de la regla {/*rule-details*/}
12+
13+
Las variables globales existen fuera del control de React. Cuando las modificas durante el renderizado, rompes la suposición de React de que el renderizado es puro. Esto puede hacer que los componentes se comporten de manera diferente en desarrollo y producción, romper Fast Refresh e impedir que tu aplicación se optimice con funciones como React Compiler.
14+
15+
### Inválido {/*invalid*/}
16+
17+
Ejemplos de código incorrecto para esta regla:
18+
19+
```js
20+
// ❌ Contador global
21+
let renderCount = 0;
22+
function Component() {
23+
renderCount++; // Mutar un global
24+
return <div>Count: {renderCount}</div>;
25+
}
26+
27+
// ❌ Modificar propiedades de window
28+
function Component({userId}) {
29+
window.currentUser = userId; // Mutación global
30+
return <div>User: {userId}</div>;
31+
}
32+
33+
// ❌ push en un arreglo global
34+
const events = [];
35+
function Component({event}) {
36+
events.push(event); // Mutar un arreglo global
37+
return <div>Events: {events.length}</div>;
38+
}
39+
40+
// ❌ Manipulación de caché
41+
const cache = {};
42+
function Component({id}) {
43+
if (!cache[id]) {
44+
cache[id] = fetchData(id); // Modificar la caché durante el renderizado
45+
}
46+
return <div>{cache[id]}</div>;
47+
}
48+
```
49+
50+
### Válido {/*valid*/}
51+
52+
Ejemplos de código correcto para esta regla:
53+
54+
```js
55+
// ✅ Usa estado para contadores
56+
function Component() {
57+
const [clickCount, setClickCount] = useState(0);
58+
59+
const handleClick = () => {
60+
setClickCount(c => c + 1);
61+
};
62+
63+
return (
64+
<button onClick={handleClick}>
65+
Clicked: {clickCount} times
66+
</button>
67+
);
68+
}
69+
70+
// ✅ Usa contexto para valores globales
71+
function Component() {
72+
const user = useContext(UserContext);
73+
return <div>User: {user.id}</div>;
74+
}
75+
76+
// ✅ Sincroniza el estado externo con React
77+
function Component({title}) {
78+
useEffect(() => {
79+
document.title = title; // Correcto en un efecto
80+
}, [title]);
81+
82+
return <div>Page: {title}</div>;
83+
}
84+
```

0 commit comments

Comments
 (0)