Skip to content

Commit 8ecddda

Browse files
authored
Merge pull request #58 from reactjs/hooks/rules-of-hooks
Rules of Hooks translation
2 parents 9c3ddad + 26b3b7f commit 8ecddda

File tree

1 file changed

+46
-46
lines changed

1 file changed

+46
-46
lines changed

content/docs/hooks-rules.md

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,73 @@
11
---
22
id: hooks-rules
3-
title: Rules of Hooks
3+
title: Horgok szabályai
44
permalink: docs/hooks-rules.html
55
next: hooks-custom.html
66
prev: hooks-effect.html
77
---
88

9-
*Hooks* are a new addition in React 16.8. They let you use state and other React features without writing a class.
9+
A *Horgok* a React 16.8-as verziójában lettek hozzáadva. Osztályok létrehozása nélkül is lehetőséget kínálnak állapot, és más React funkciók használatához.
1010

11-
Hooks are JavaScript functions, but you need to follow two rules when using them. We provide a [linter plugin](https://www.npmjs.com/package/eslint-plugin-react-hooks) to enforce these rules automatically:
11+
A Horgok JavaScript függvények, de használatukkor két szabályt be kell tarts. Szolgáltatunk egy linter plugint, ami ezen szabályok automatikus betartására kényszerít:
1212

13-
### Only Call Hooks at the Top Level {#only-call-hooks-at-the-top-level}
13+
### Horgokat csakis a legfelsőbb szinten hívj meg {#only-call-hooks-at-the-top-level}
1414

15-
**Don't call Hooks inside loops, conditions, or nested functions.** Instead, always use Hooks at the top level of your React function. By following this rule, you ensure that Hooks are called in the same order each time a component renders. That's what allows React to correctly preserve the state of Hooks between multiple `useState` and `useEffect` calls. (If you're curious, we'll explain this in depth [below](#explanation).)
15+
**Ne hívj meg Horgokat ciklusokban, feltételes ágakban, vagy egymásba ágyazott függvényekben.** A Horgokat mindig a React függvényed legfelső szintjén hívd meg. Ennek a szabálynak a betartásával gondoskodsz róla, hogy a Horgok a komponens minden renderelésénél ugyanabban a sorrendben legyenek meghívva. Ez teszi lehetővé a React számára több `useState` és `useEffect` hívás esetén az állapot megőrzését. (Ha kíváncsi vagy, [lentebb](#explanation) ezt részletesen is kifejtjük.)
1616

17-
### Only Call Hooks from React Functions {#only-call-hooks-from-react-functions}
17+
### Horgokat csakis React függvényekből hívj meg {#only-call-hooks-from-react-functions}
1818

19-
**Don't call Hooks from regular JavaScript functions.** Instead, you can:
19+
**Ne hívj meg Horgokat általános JavaScript függvényekből.** Ehelyett:
2020

21-
*Call Hooks from React function components.
22-
*Call Hooks from custom Hooks (we'll learn about them [on the next page](/docs/hooks-custom.html)).
21+
*Horgokat React függvénykomponensekből hívj meg.
22+
*Horgokat egyedi Horgokból hívj meg (erről többet fogunk tanulni [a következő oldalon](/docs/hooks-custom.html)).
2323

24-
By following this rule, you ensure that all stateful logic in a component is clearly visible from its source code.
24+
Ennek a szabálynak a betartásával gondoskodsz róla, hogy minden állapotteljes komponenslogika tisztán kiolvasható legyen a forráskódból.
2525

2626
## ESLint Plugin {#eslint-plugin}
2727

28-
We released an ESLint plugin called [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) that enforces these two rules. You can add this plugin to your project if you'd like to try it:
28+
Kiadtunk egy ESLint plugint [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) néven, ami ezt a két szabályt segít betartani. Ha ki szeretnéd próbálni, így tudod hozzáadni a projektedhez:
2929

30-
This plugin is included by default in [Create React App](/docs/create-a-new-react-app.html#create-react-app).
30+
Ezt a plugint a [Create React App](/docs/create-a-new-react-app.html#create-react-app) alapból tartalmazza.
3131

3232
```bash
3333
npm install eslint-plugin-react-hooks --save-dev
3434
```
3535

3636
```js
37-
// Your ESLint configuration
37+
// Az ESLint konfigurációd
3838
{
3939
"plugins": [
4040
// ...
4141
"react-hooks"
4242
],
4343
"rules": {
4444
// ...
45-
"react-hooks/rules-of-hooks": "error", // Checks rules of Hooks
46-
"react-hooks/exhaustive-deps": "warn" // Checks effect dependencies
45+
"react-hooks/rules-of-hooks": "error", // Ellenőrzi a Horgok szabályainak betartását
46+
"react-hooks/exhaustive-deps": "warn" // Ellenőrzi a hatásfüggőségeket
4747
}
4848
}
4949
```
5050

51-
**You can skip to the next page explaining how to write [your own Hooks](/docs/hooks-custom.html) now.** On this page, we'll continue by explaining the reasoning behind these rules.
51+
**[A saját Horgod](/docs/hooks-custom.html) írásához most továbbléphetsz a következő oldalra.** Ezen az oldalon tovább magyarázzuk az érveléseinket ezen szabályok mellett.
5252

53-
## Explanation {#explanation}
53+
## Magyarázat {#explanation}
5454

55-
As we [learned earlier](/docs/hooks-state.html#tip-using-multiple-state-variables), we can use multiple State or Effect Hooks in a single component:
55+
Ahogy [korábban megtanultuk](/docs/hooks-state.html#tip-using-multiple-state-variables), egy komponensben egyszerre több Állapot és Hatás Horgot is használhatunk:
5656

5757
```js
5858
function Form() {
59-
// 1. Use the name state variable
59+
// 1. Használd a név állapotváltozót
6060
const [name, setName] = useState('Mary');
6161

62-
// 2. Use an effect for persisting the form
62+
// 2. Használj egy hatást az űrlap megőrzésére
6363
useEffect(function persistForm() {
6464
localStorage.setItem('formData', name);
6565
});
6666

67-
// 3. Use the surname state variable
67+
// 3. Használd a családi név állapotváltozót
6868
const [surname, setSurname] = useState('Poppins');
6969

70-
// 4. Use an effect for updating the title
70+
// 4. Használj egy hatást a dokumentum címének frissítéséhez
7171
useEffect(function updateTitle() {
7272
document.title = name + ' ' + surname;
7373
});
@@ -76,63 +76,63 @@ function Form() {
7676
}
7777
```
7878

79-
So how does React know which state corresponds to which `useState` call? The answer is that **React relies on the order in which Hooks are called**. Our example works because the order of the Hook calls is the same on every render:
79+
Szóval hogyan is tudja a React, hogy melyik állapothoz melyik `useState` hívás tartozik? A válasz, hogy **a React a Horgok meghívásának sorrendjére hagyatkozik**. A példánk azért működik, mert a Horgok meghívásának sorrendje minden renderelés során ugyanaz:
8080

8181
```js
8282
// ------------
83-
// First render
83+
// Első renderelés
8484
// ------------
85-
useState('Mary') // 1. Initialize the name state variable with 'Mary'
86-
useEffect(persistForm) // 2. Add an effect for persisting the form
87-
useState('Poppins') // 3. Initialize the surname state variable with 'Poppins'
88-
useEffect(updateTitle) // 4. Add an effect for updating the title
85+
useState('Mary') // 1. Inicializáld a név állapotváltozót 'Mary'-vel
86+
useEffect(persistForm) // 2. Adj hozzá egy hatást az űrlap megőrzéséért
87+
useState('Poppins') // 3. Inicializáld a családi név állapotváltozót 'Poppins'-szal
88+
useEffect(updateTitle) // 4. Adj hozzá egy hatást a cím frissítéséért
8989

9090
// -------------
91-
// Second render
91+
// Második renderelés
9292
// -------------
93-
useState('Mary') // 1. Read the name state variable (argument is ignored)
94-
useEffect(persistForm) // 2. Replace the effect for persisting the form
95-
useState('Poppins') // 3. Read the surname state variable (argument is ignored)
96-
useEffect(updateTitle) // 4. Replace the effect for updating the title
93+
useState('Mary') // 1. Olvasd ki a énv állapotváltozót (az argumentum ignorálva van)
94+
useEffect(persistForm) // 2. Cseréld le a hatást az űrlap megőrzéséért
95+
useState('Poppins') // 3. Olvasd ki a családi név állapotváltozót (az argumentum ignorálva van)
96+
useEffect(updateTitle) // 4. Cseréld ki a hatást a cím frissítéséért
9797

9898
// ...
9999
```
100100

101-
As long as the order of the Hook calls is the same between renders, React can associate some local state with each of them. But what happens if we put a Hook call (for example, the `persistForm` effect) inside a condition?
101+
Egészen addig, amíg a Horgok meghívása nem változik a renderelések között, a React asszociálni tudja a helyi állapotokat ezekkel. De mi történik, ha az egyik Horog meghívását (például a `persistForm` hatást) egy feltételbe tesszük?
102102

103103
```js
104-
// 🔴 We're breaking the first rule by using a Hook in a condition
104+
// 🔴 Ezzel megszegjük az első szabályt, mivel a Horgot egy feltételben használjuk
105105
if (name !== '') {
106106
useEffect(function persistForm() {
107107
localStorage.setItem('formData', name);
108108
});
109109
}
110110
```
111111

112-
The `name !== ''` condition is `true` on the first render, so we run this Hook. However, on the next render the user might clear the form, making the condition `false`. Now that we skip this Hook during rendering, the order of the Hook calls becomes different:
112+
A `name !== ''` feltétel `true` az első rendereléskor, szóval lefuttatjuk a Horgot. Azonban a következő rendereléskor a felhasználó törölheti az űrlapot, ezzel `false`-ra állítva feltételt. Most, hogy a renderelés során kihagyjuk a Horog meghívását, a Horgok meghívásának sorrendje megváltozik:
113113

114114
```js
115-
useState('Mary') // 1. Read the name state variable (argument is ignored)
116-
// useEffect(persistForm) // 🔴 This Hook was skipped!
117-
useState('Poppins') // 🔴 2 (but was 3). Fail to read the surname state variable
118-
useEffect(updateTitle) // 🔴 3 (but was 4). Fail to replace the effect
115+
useState('Mary') // 1. Olvasd ki a énv állapotváltozót (az argumentum ignorálva van)
116+
// useEffect(persistForm) // 🔴 Ez a Horog ki lett hagyva!
117+
useState('Poppins') // 🔴 2 (de az előbb 3 volt). Nem tudja kiolvasni a családi név állapotváltozót
118+
useEffect(updateTitle) // 🔴 3 (de az előbb 4 volt). Nem tudja kicserélni a hatást
119119
```
120120

121-
React wouldn't know what to return for the second `useState` Hook call. React expected that the second Hook call in this component corresponds to the `persistForm` effect, just like during the previous render, but it doesn't anymore. From that point, every next Hook call after the one we skipped would also shift by one, leading to bugs.
121+
A React nem tudhatta, hogy mit adjon vissza a második `useState` Horog meghívásakor. A React arra számított, hogy a komponensben lévő második Horog meghívása a `persistForm` hatásnak felel meg, ahogyan az előző rendereléskor is, de most már nem ez a helyzet. Mostantól minden Horog meghívás a kihagyás után el van csúszva eggyel, ami hibákhoz vezet.
122122

123-
**This is why Hooks must be called on the top level of our components.** If we want to run an effect conditionally, we can put that condition *inside* our Hook:
123+
**Ezért kell, hogy a Horgok csak a komponensünk legfelsőbb szintjén legyenek meghívva.** Ha egy hatást feltételesen szeretnénk futtatni, vigyük át a feltételt a Horgon *belülre*:
124124

125125
```js
126126
useEffect(function persistForm() {
127-
// 👍 We're not breaking the first rule anymore
127+
// 👍 Így már nem szegjük meg az első szabályt
128128
if (name !== '') {
129129
localStorage.setItem('formData', name);
130130
}
131131
});
132132
```
133133

134-
**Note that you don't need to worry about this problem if you use the [provided lint rule](https://www.npmjs.com/package/eslint-plugin-react-hooks).** But now you also know *why* Hooks work this way, and which issues the rule is preventing.
134+
**Jegyezd meg, hogy ettől a problémától nem kell tartanod, ha használod a [szolgáltatott lint szabályt](https://www.npmjs.com/package/eslint-plugin-react-hooks).** De most már azt is tudod, hogy *miért* működnek így a Horgok, és milyen hibákat előz meg a szabály.
135135

136-
## Next Steps {#next-steps}
136+
## Következő lépések {#next-steps}
137137

138-
Finally, we're ready to learn about [writing your own Hooks](/docs/hooks-custom.html)! Custom Hooks let you combine Hooks provided by React into your own abstractions, and reuse common stateful logic between different components.
138+
Végre, készen állunk [saját Horgaid írásának](/docs/hooks-custom.html) tanulására! Az Egyedi Horgok lehetővé teszik a React által szolgáltatott Horgokat saját absztrakcióidba kombinálni, és állapotteljes logika újrafelhasználását különböző komponensek között.

0 commit comments

Comments
 (0)