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/rules/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ Esta sección describe las reglas que necesitas seguir para escribir código Rea
18
18
19
19
Estas reglas son conocidas como las **Reglas de React**. Son reglas – y no solo directrices – en el sentido de que si se rompen, es probable que tu aplicación tenga errores. Tu código también se vuelve poco idiomático y más difícil de entender y de razonar.
20
20
21
-
Recomendamos encarecidamente usar [Strict Mode](/reference/react/StrictMode) junto con el [ESLint plugin](https://www.npmjs.com/package/eslint-plugin-react-hooks) para ayudar a que tu base de código siga las Reglas de React. Al seguir las Reglas de React, podrás encontrar y abordar estos errores y mantener tu aplicación.
21
+
Recomendamos encarecidamente usar [Strict Mode](/reference/react/StrictMode) junto con el [ESLint plugin](https://www.npmjs.com/package/eslint-plugin-react-hooks) para ayudar a que tu base de código siga las Reglas de React. Seguir las Reglas de React te permitirá encontrar y abordar estos errores y mantener tu aplicación.
Copy file name to clipboardExpand all lines: src/content/reference/rules/react-calls-components-and-hooks.md
+18-19Lines changed: 18 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ React se encarga de renderizar los componentes y hooks cuando sea necesario para
10
10
11
11
---
12
12
13
-
## Never call component functions directly {/*never-call-component-functions-directly*/}
13
+
## Nunca llames a funciones de componentes directamente {/*never-call-component-functions-directly*/}
14
14
Los componentes solo deben ser utilizados en JSX. No los llames como funciones regulares. React debería ser quien los llame.
15
15
16
16
React debe decidir cuándo se llama a la función del componente [durante el renderizado](/reference/rules/components-and-hooks-must-be-pure#how-does-react-run-your-code). En React, lo haces usando JSX.
@@ -39,63 +39,62 @@ Permitir que React orqueste el renderizado también ofrece una serie de benefici
39
39
40
40
---
41
41
42
-
## Never pass around Hooks as regular values {/*never-pass-around-hooks-as-regular-values*/}
42
+
## Nunca pases Hooks como valores regulares {/*never-pass-around-hooks-as-regular-values*/}
43
43
44
-
Hooks should only be called inside of components or Hooks. Never pass it around as a regular value.
44
+
Los Hooks solo deben ser llamados dentro de componentes. Nunca los pases como un valor regular.
45
45
46
-
Hooks allow you to augment a component with React features. They should always be called as a function, and never passed around as a regular value. This enables _local reasoning_, or the ability for developers to understand everything a component can do by looking at that component in isolation.
46
+
Los hooks te permiten aumentar un componente con las características de React. Siempre deben ser llamados como una función, y nunca pasados como un valor regular. Esto permite el _razonamiento local_, o la capacidad de los desarrolladores para entender todo lo que un componente puede hacer con solo mirar ese componente de forma aislada.
47
47
48
-
Breaking this rule will cause React to not automatically optimize your component.
48
+
Romper esta regla hará que React no optimice automáticamente tu componente.
49
49
50
-
### Don't dynamically mutate a Hook {/*dont-dynamically-mutate-a-hook*/}
50
+
### No mutes dinámicamente a un Hook {/*dont-dynamically-mutate-a-hook*/}
51
51
52
-
Hooks should be as "static" as possible. This means you shouldn't dynamically mutate them. For example, this means you shouldn't write higher order Hooks:
52
+
Los hooks deben ser como "estáticos" como sea posible. Esto significa que no debes mutarlos dinámicamente. Por ejemplo, esto significa que no debes escribir hooks de orden superior:
53
53
54
54
```js {2}
55
55
functionChatInput() {
56
-
constuseDataWithLogging=withLogging(useData); // 🔴 Bad: don't write higher order Hooks
56
+
constuseDataWithLogging=withLogging(useData); // 🔴 Mal: no escribas hooks de orden superior
57
57
constdata=useDataWithLogging();
58
58
}
59
59
```
60
60
61
-
Hooks should be immutable and not be mutated. Instead of mutating a Hook dynamically, create a static version of the Hook with the desired functionality.
61
+
Los hooks deben ser inmutables y no ser mutados. En su lugar, muta un hook dinámicamente, crea una versión estática del hook con la funcionalidad deseada.
62
62
63
63
```js {2,6}
64
64
functionChatInput() {
65
-
constdata=useDataWithLogging(); // ✅ Good: Create a new version of the Hook
65
+
constdata=useDataWithLogging(); // ✅ Bien: Crea una nueva versión del hook
66
66
}
67
67
68
68
functionuseDataWithLogging() {
69
-
// ... Create a new version of the Hook and inline the logic here
69
+
// ... Crea una nueva versión del hook e implementa la lógica aquí
70
70
}
71
71
```
72
72
73
-
### Don't dynamically use Hooks {/*dont-dynamically-use-hooks*/}
73
+
### No uses dinámicamente a un Hook {/*dont-dynamically-use-hooks*/}
74
74
75
-
Hooks should also not be dynamically used: for example, instead of doing dependency injection in a component by passing a Hook as a value:
75
+
Los hooks tampoco deben ser utilizados dinámicamente: por ejemplo, en lugar de hacer inyección de dependencias en un componente pasando un Hook como un valor:
76
76
77
77
```js {2}
78
78
functionChatInput() {
79
-
return<Button useData={useDataWithLogging} />// 🔴 Bad: don't pass Hooks as props
79
+
return<Button useData={useDataWithLogging} />// 🔴 Mal: no pases hooks como props
80
80
}
81
81
```
82
82
83
-
You should always inline the call of the Hook into that component and handle any logic in there.
83
+
Deberías siempre integrar la llamada del hook en el componente y manejar cualquier lógica en él.
84
84
85
85
```js {6}
86
86
functionChatInput() {
87
87
return<Button />
88
88
}
89
89
90
90
functionButton() {
91
-
constdata=useDataWithLogging(); // ✅ Good: Use the Hook directly
91
+
constdata=useDataWithLogging(); // ✅ Bien: Llama al hook directamente
92
92
}
93
93
94
94
functionuseDataWithLogging() {
95
-
// If there's any conditional logic to change the Hook's behavior, it should be inlined into
96
-
// the Hook
95
+
// Si hay alguna lógica condicional para cambiar el comportamiento del hook, debe ser integrada // en el hook
97
96
}
98
97
```
99
98
100
-
This way, `<Button />`is much easier to understand and debug. When Hooks are used in dynamic ways, it increases the complexity of your app greatly and inhibits local reasoning, making your team less productive in the long term. It also makes it easier to accidentally break the [Rules of Hooks](/reference/rules/rules-of-hooks)that Hooks should not be called conditionally. If you find yourself needing to mock components for tests, it's better to mock the server instead to respond with canned data. If possible, it's also usually more effective to test your app with end-to-end tests.
99
+
De esta manera, el componente, `<Button />`es mucho más fácil de entender y depurar. Cuando los Hooks se utilizan de forma dinámica, aumentan considerablemente la complejidad de tu aplicación e impiden el razonamiento local, lo que hace que tu equipo sea menos productivo a largo plazo. También hace que sea más fácil romper accidentalmente las [Reglas de los Hooks](/reference/rules/rules-of-hooks)que establecen que los Hooks no deben ser llamados condicionalmente. Si encuentrasen la necesidad de mockear componentes para realizar pruebas, es preferible mockear el servidor en su lugar para que responda con datos predefinidos. Si es posible, también suele ser más eficaz probar tu aplicación con pruebas de extremo a extremo (end-to-end).
0 commit comments