Skip to content

Commit ba46cd2

Browse files
Apply suggestions from code review
Co-Authored-By: Orsi <[email protected]>
1 parent 4724506 commit ba46cd2

File tree

1 file changed

+43
-43
lines changed

1 file changed

+43
-43
lines changed

content/docs/state-and-lifecycle.md

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ prev: components-and-props.html
88
next: handling-events.html
99
---
1010

11-
Ez az oldal az állapot és életcilus fogalmakat mutatja be egy React komponensben. A [részletes komponens API referenciát itt](/docs/react-component.html) találod.
11+
Ez az oldal az állapot és életciklus fogalmait mutatja be egy React komponensben. A [részletes komponens API referenciát itt](/docs/react-component.html) találod.
1212

1313
Vedd a ketyegő óra példát [az egyik korábbi fejezetből](/docs/rendering-elements.html#updating-the-rendered-element). Az [Elemek renderelése](/docs/rendering-elements.html#rendering-an-element-into-the-dom) fejezetben csak egyetlen módját tanultuk meg a felhasználói felület frissítésének. A `ReactDOM.render()` metódus meghívásával megváltoztatjuk a renderelt kimenetet:
1414

@@ -31,9 +31,9 @@ setInterval(tick, 1000);
3131

3232
[**Próbáld ki a CodePen-en**](https://codepen.io/gaearon/pen/gwoJZk?editors=0010)
3333

34-
Ebben a fejezetben megtanuljuk hogy, hogyan tehetjük a `Clock` komponenst igazán újrafelhasználhatóvás és egységbe foglalttá tenni. Fel fogja állítani a saját időzítőjét, és frissíti magát minden másodpercben.
34+
Ebben a fejezetben megtanuljuk, hogy hogyan tudjuk a `Clock` komponenst igazán újrafelhasználhatóvá és egységbe foglalttá tenni. Saját időzítőt fog beállítani, hogy minden másodpercben frissíteni tudja önmagát.
3535

36-
Kezdhetjük azzal, hogy hogyan foglaljuk egységbe azt ahogyan az óra kinéz:
36+
Kezdhetjük azzal, hogy hogyan foglaljuk egységbe azt, ahogyan az óra kinéz:
3737

3838
```js{3-6,12}
3939
function Clock(props) {
@@ -57,7 +57,7 @@ setInterval(tick, 1000);
5757

5858
[**Próbáld ki a CodePen-en**](https://codepen.io/gaearon/pen/dpdoYR?editors=0010)
5959

60-
Azonban ebből hiányzik valami nagyon fontos: A tény, hogy a `Clock` komponens felállít egy időzítőt és minden másodpercben frissíti a felhasználói felületet, a `Clock` egy implementációs részlet kell hogy legyen.
60+
Azonban ebből hiányzik valami nagyon fontos: Az a tény, hogy a `Clock` komponens beállít egy időzítőt és minden másodpercben frissíti a felhasználói felületet, a `Clock` komponens saját implementációs részlete kell hogy legyen.
6161

6262
Ideális esetben ezt egyszer szeretnénk megírni és hagyjuk a `Clock`-ot saját magát frissíteni:
6363

@@ -74,13 +74,13 @@ Az állapot hasonló a prop-okhoz, de privát a komponensre nézve, és teljes m
7474

7575
## Függvény konvertálása osztállyá {#converting-a-function-to-a-class}
7676

77-
Egy függvény komponenst, mint például a `Clock` ebben az öt lépésben tudsz osztállyá konvertálni:
77+
Egy függvény komponenst, mint például a `Clock`-ot, ebben az öt lépésben tudsz osztállyá konvertálni:
7878

79-
1. Készíts egy [ES6 osztályt](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes), ugyanazzal a névvel, ami `React.Component`-t terjeszti ki.
79+
1. Készíts egy [ES6 osztályt](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes) ugyanazzal a névvel és terjeszd ki a `React.Component` osztályt.
8080

8181
2. Adj hozzá egy üres `render()` metódust.
8282

83-
3. Tedd át a a függvény testét a `render()` metódusba.
83+
3. Helyezd át a a függvény testét a `render()` metódusba.
8484

8585
4. Nevezd át a `props`-ot `this.props`-ra a `render()` testében.
8686

@@ -103,13 +103,13 @@ class Clock extends React.Component {
103103

104104
A `Clock` most már osztályként van definiálva függvény helyett.
105105

106-
A `render` metódus minden alkalommal meg lesz hívva, ha egy frissítés történik, de amíg a `<Clock />`-ot ugyanabba a DOM csomópontba rendereljük, addig a `Clock` osztálynak csupán egy példánya lesz használva. Ez lehetővé teszi nekünk olyan fuknciók hozzáadását mint a helyi állapot, és életciklus metódusok.
106+
A `render` metódus minden alkalommal meg lesz hívva ha egy frissítés történik, de amíg a `<Clock />`-ot ugyanabba a DOM csomópontba rendereljük, addig a `Clock` osztálynak csupán egy példánya lesz használva. Ez lehetővé teszi olyan funkciók hozzáadását mint a helyi állapot és életciklus metódusok.
107107

108108
## Helyi állapot hozzáadása egy osztályhoz {#adding-local-state-to-a-class}
109109

110-
Mozgassuk a `date` objektumot a props-ból a state-be három lépésben:
110+
Helyezzük át a `date` objektumot a props-ból a state-be három lépésben:
111111

112-
1) Nevezd át a `this.props.date`-t `this.state.date`-re a `render()` metódusban:
112+
1) Nevezd át a `this.props.date`-et `this.state.date`-re a `render()` metódusban:
113113

114114
```js{6}
115115
class Clock extends React.Component {
@@ -124,7 +124,7 @@ class Clock extends React.Component {
124124
}
125125
```
126126

127-
2) Adj hozzá egy [osztály konstruktort](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes#Constructor) ami hozzárendel egy kezdetleges `this.state`-t:
127+
2) Adj hozzá egy [osztály konstruktort](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes#Constructor), ami hozzárendel egy kezdetleges `this.state`-et:
128128

129129
```js{4}
130130
class Clock extends React.Component {
@@ -144,7 +144,7 @@ class Clock extends React.Component {
144144
}
145145
```
146146

147-
Vedd észre hogy az alap kontruktornak küldjük a `props`-ot:
147+
Figyeld meg, hogy hogyan adjuk át az alapkonstruktornak a `props`-ot:
148148

149149
```js{2}
150150
constructor(props) {
@@ -153,9 +153,9 @@ Vedd észre hogy az alap kontruktornak küldjük a `props`-ot:
153153
}
154154
```
155155

156-
Az osztálykomonensek kontruktorai mindig a `props`-al kell hogy legyenek meghívva.
156+
Az osztálykomponensek konstruktorai mindig meg kell hogy hívják az alapkonstruktort a `props` átadásával.
157157

158-
3) Töröld a `date` prop-ot a `<Clock />` elemből:
158+
3) Töröld ki a `date` prop-ot a `<Clock />` elemből:
159159

160160
```js{2}
161161
ReactDOM.render(
@@ -164,7 +164,7 @@ ReactDOM.render(
164164
);
165165
```
166166

167-
Az időzítő kódot később hozzáadjuk magához a komponenshez.
167+
Az időzítő kódját később adjuk vissza a komponensbe.
168168

169169
Az eredmény így néz ki:
170170

@@ -193,15 +193,15 @@ ReactDOM.render(
193193

194194
[**Próbáld ki a CodePen-en**](https://codepen.io/gaearon/pen/KgQpJd?editors=0010)
195195

196-
A következőben hagyjuk hogy a `Clock` maga állítson fel egy időzítőt, és frissítse magát minden másodpercben.
196+
A következőben hagyjuk, hogy a `Clock` maga állítson be egy időzítőt és frissítse magát minden másodpercben.
197197

198198
## Életciklus metódusok hozzáadása egy osztályhoz {#adding-lifecycle-methods-to-a-class}
199199

200-
Sok komponenssel rendelkező alkalmazásokban nagyon fontos hogy a komponensek által elfoglalt forrásokatfelszabadítsuk amikor azok elpusztulnak.
200+
Sok komponenssel rendelkező alkalmazásokban nagyon fontos, hogy a komponensek által elfoglalt erőforrásokat felszabadítsuk, amikor azok elpusztulnak.
201201

202-
Szeretnénk [felállítani egy időzítőt](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval) amikor a `Clock` először lesz renderelve a DOM-ba. A React-ben ezt hívjuk "előkészítés"-nek, vagy "mounting"-nak.
202+
Szeretnénk [felállítani egy időzítőt](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval), amikor a `Clock` először renderelődik DOM-ba. A Reactben ezt hívjuk "előkészítés"-nek, vagy "mounting"-nak.
203203

204-
Azt is szeretnénk, ha az [időzítő törölve lenne](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval) amikor a DOM által készített `Clock` el lesz távolítva. A React-ben ezt hívjuk "leválasztás"-nak vagy "unmounting"-nak.
204+
Azt is szeretnénk, ha az [időzítő törölve lenne](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval), amikor a DOM által készített `Clock` el lesz távolítva. A React-ben ezt hívjuk "leválasztás"-nak vagy "unmounting"-nak.
205205

206206
A komponens oszályban tudunk speciális metódusokat deklarálni, amik lefuttatnak egy kódot amikor a komponens előkészül, vagy leválik:
207207

@@ -233,7 +233,7 @@ class Clock extends React.Component {
233233

234234
Ezeket a metódusokat "életciklus" metódusoknak" hívjuk.
235235

236-
A `componentDidMount()` metódus azután fut le, hogy a komponens kimenete a DOM-ba lett renderelve. Ez egy jó hely az időzítő felállítására:
236+
A `componentDidMount()` metódus azután fut le, hogy a komponens kimenete a DOM-ba lett renderelve. Ez egy jó hely az időzítő beállítására:
237237

238238
```js{2-5}
239239
componentDidMount() {
@@ -244,11 +244,11 @@ A `componentDidMount()` metódus azután fut le, hogy a komponens kimenete a DOM
244244
}
245245
```
246246

247-
Vedd észre hogy az időzítő azonosítóját közvetlenül a `this`-re mentjük (`this.timerID`).
247+
Vedd észre, hogy az időzítő azonosítóját közvetlenül a `this`-re mentjük (`this.timerID`).
248248

249-
Míg a `this.props`-ot maga a React állítja fel, és a `this.state`-nek speciális jelentése van, te nyugodtan adhatsz hozzá manuálisan egyéb mezőket, ha valamit tárolni szeretnél ami nem vesz részt az adatfolyamban (mint például az időzítő azonosító).
249+
Míg a `this.props`-ot maga a React állítja fel, és a `this.state`-nek speciális jelentése van, te nyugodtan adhatsz hozzá manuálisan egyéb mezőket, ha valamit tárolni szeretnél, ami nem vesz részt az adatfolyamban (mint például az időzítő azonosító).
250250

251-
Az időzítőt a `componentWillUnmount()` életciklus metódusban fogjuk lebontani:
251+
Az időzítőt a `componentWillUnmount()` életciklus metódusban fogjuk leállítani:
252252

253253
```js{2}
254254
componentWillUnmount() {
@@ -258,7 +258,7 @@ Az időzítőt a `componentWillUnmount()` életciklus metódusban fogjuk lebonta
258258

259259
Végezetül implementálni fogunk egy `tick()` metódust, amit a `Clock` komponens fog futtatni minden másodpercben.
260260

261-
Ez a `this.setState()` metódust fogja használni ami a frissítéseket ütemezi a helyi állapoton:
261+
Ez a `this.setState()` metódus segítségével fogja a komponens helyi állapotát frissíteni.
262262

263263
```js{18-22}
264264
class Clock extends React.Component {
@@ -306,19 +306,19 @@ Az óra most már minden másodpercben kettyen.
306306

307307
Vegyük át gyorsan mi is történik és a metódusok milyen sorrendben vannak meghívva:
308308

309-
1) Amikor a `<Clock />`-t küldjük a `ReactDOM.render()` metódusnak, a React meghívja a `Clock` komponens konstruktorát. Mivel a `Clock` komponensnek meg kell jelenítenie a jelenlegi időt, ez inicializál egy `this.state`-et, ami egy objektumot tartalmaz a jelenlegi idővel. Később ezt az állapotot frissítjük.
309+
1) Amikor a `<Clock />`-ot átadjuk a `ReactDOM.render()` metódusnak, a React meghívja a `Clock` komponens konstruktorát. Mivel a `Clock` komponensnek meg kell jelenítenie a jelenlegi időt, ez inicializál egy `this.state`-et, ami egy objektumot tartalmaz a jelenlegi idővel. Később ezt az állapotot frissítjük.
310310

311-
2) Ezután a React meghívja a `Clock` komponens `render()` metódusát. A React így tanulja meg mit kell mutatnia a képernyőn. A React ezután frissíti a DOM-ot hogy az megegyezzen a `Clock` render kimenetével.
311+
2) Ezután a React meghívja a `Clock` komponens `render()` metódusát. A React ennek segítségével állapítja meg, hogy mit kell mutatnia a képernyőn. A React ezután frissíti a DOM-ot, hogy az megegyezzen a `Clock` render kimenetével.
312312

313-
3) Amikor a `Clock` kimenet be van illesztve a DOM-ba, a React meghívja a `componentDidMount()` életciklus metódust. Ezen belül a `Clock` komponens megkéri a böngészőt, hogy az állítson fel egy időzítőt ami minden másodpercben meghívja komponens `tick()` metódusát.
313+
3) Amikor a `Clock` kimenet be van illesztve a DOM-ba, a React meghívja a `componentDidMount()` életciklus metódust. Ezen belül a `Clock` komponens megkéri a böngészőt, hogy az állítson fel egy időzítőt, ami minden másodpercben meghívja a komponens `tick()` metódusát.
314314

315-
4) A böngésző minden másodpercben meghívja a `tick()` metódust. Ezen belül, a `Clock` komponens beütemez egy kezelői felület frissítést a `setState()` meghívásával egy objektummal ami a jelenlegi időt tartalmazza. A `setState()` hívásnak köszönhetően a React tudja hogy az állapot megváltozott és újra meghívja a `render()` metódust hogy megtudja minek kéne megjelennie a képernyőn. Ezúttal a `this.state.date` a `render()` metódusban más lesz, és ezért a render kimenete tartalmazni fogja a frissítet időt. A React ennek megfelelően frissíti a DOM-ot.
315+
4) A böngésző minden másodpercben meghívja a `tick()` metódust. Ezen belül, a `Clock` komponens beütemez egy kezelői felület frissítést a `setState()` meghívásával egy objektummal, ami a jelenlegi időt tartalmazza. A `setState()` hívásnak köszönhetően a React tudja, hogy az állapot megváltozott, és újra meghívja a `render()` metódust, hogy megtudja, minek kéne megjelennie a képernyőn. Ezúttal a `this.state.date` a `render()` metódusban más lesz, és ezért a render kimenete tartalmazni fogja a frissítet időt. A React ennek megfelelően frissíti a DOM-ot.
316316

317317
5) Ha a `Clock` komponens el lesz távolítva a DOM-ból, a React meghívja a `componentWillUnmount()` életciklus metódust és az időzítő így megáll.
318318

319319
## Az állapot helyes használata {#using-state-Helyesly}
320320

321-
Van három dolog amit tudnod kell a `setState()` metódusról.
321+
Három dolog van, amit tudnod kell a `setState()` metódusról.
322322

323323
### Ne módosítsd az állapotot közvetlenül {#do-not-modify-state-directly}
324324

@@ -336,15 +336,15 @@ Használd helyette a `setState()`-t:
336336
this.setState({comment: 'Helló'});
337337
```
338338

339-
Az egyetlen hely ahol bármit is hozzárendelhetsz a `this.state`-hez az a konstruktor.
339+
Az egyetlen hely, ahol bármit is hozzárendelhetsz a `this.state`-hez, az a konstruktor.
340340

341341
### Az állapot frissítések lehetnek aszinkronok {#state-updates-may-be-asynchronous}
342342

343343
A React összefoghat egy csomó `setState()` hívást egy szimpla frissítésbe a teljesítmény növelése érdekében.
344344

345345
Mivel a `this.props` és a `this.state` frissülhet aszinkron módon, nem szabad az értékeikre hagyatkoznod a következő állapot kiszámításához.
346346

347-
Például ez a kód lehet hogy nem fogja tudni frissíteni a számlálót:
347+
Például ez a kód lehet, hogy nem fogja tudni frissíteni a számlálót:
348348

349349
```js
350350
// Helytelen
@@ -353,7 +353,7 @@ this.setState({
353353
});
354354
```
355355

356-
Hogy ezt kijavítsd, használd a `setState()` másik formáját, ami egy függvényt fogad argumentumként, egy objektum helyett. A függvény fogadja az előző állapotot első argumentumként, valamint az előző props-ot másodikként:
356+
Hogy ezt kijavítsd, használd a `setState()` másik formáját, ami egy függvényt fogad argumentumként egy objektum helyett. A függvény fogadja az előző állapotot első argumentumként, valamint az előző props-ot másodikként:
357357

358358
```js
359359
// Helyes
@@ -362,7 +362,7 @@ this.setState((state, props) => ({
362362
}));
363363
```
364364

365-
A fentiekben egy [nyíl függvényt](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) használtunk, de ez működne egy átlagos függvényyel is:
365+
A fentiekben egy [nyíl függvényt](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) használtunk, de ez működne egy átlagos függvénnyel is:
366366

367367
```js
368368
// Helyes
@@ -407,15 +407,15 @@ Ezek aztán függetlenül frissíthetőek különálló `setState()` hívásokka
407407
}
408408
```
409409

410-
Az egyesítés sekély, tehát a `this.setState({comments})` érintetlenül hagyja a `this.state.posts`-ot, de teljesen lecseréli a `this.state.comments`-t.
410+
Az egyesítés sekély, tehát a `this.setState({comments})` érintetlenül hagyja a `this.state.posts`-ot, de teljesen lecseréli a `this.state.comments`-et.
411411

412412
## Az adat lefelé folyik {#the-data-flows-down}
413413

414-
Sem a felnőtt sem a gyermek komponensek nem tudják hogy egy bizonyos komponens állapot teljes, vagy állapot nélküli és az sem kell hogy érdekelje őket hogy függvényként vagy osztályként van az definiálva.
414+
Sem a felnőtt, sem a gyermek komponens nem tudhatja, hogy egy bizonyos komponens állapotteljes vagy állapot nélküli, és az sem kell hogy érdekelje őket, hogy függvényként vagy osztályként van-e definiálva.
415415

416-
Ezért van az hogy az állapotot gyakran hívjuk helyinek, vagy elzártnak. Nem hozzáférhető semelyik másik komponensnek, csak annak amelyik azt birtojolja és felállítja.
416+
Ezért van az, hogy az állapotot gyakran hívjuk helyinek, vagy egységbe zártnak. Nem hozzáférhető semelyik másik komponensből, csak abból amelyik birtokolja és beállítja.
417417

418-
Egy komponens választhat úgy, hogy leküldi a saját állapotát prop-ként a gyermek komponenseinek:
418+
Egy komponens dönthet úgy, hogy leküldi a saját állapotát prop-ként a gyermek komponenseinek:
419419

420420
```js
421421
<h2>Az idő {this.state.date.toLocaleTimeString()}.</h2>
@@ -427,7 +427,7 @@ Ez működik felhasználó által definiált komponensnél is:
427427
<FormattedDate date={this.state.date} />
428428
```
429429

430-
A `FormattedDate` komponens fogadná a `date`-t a prop-jaiban és nem tudná hogy az a `Clock` állapotából, a `Clock` prop-jából, jött, vagy az kézzel lett beírva:
430+
A `FormattedDate` komponens megkapja a `date`-et a props-ban, és nem tudja, hogy az a `Clock` állapotából, a `Clock` prop-jából jött, vagy kézzel lett beírva:
431431

432432
```js
433433
function FormattedDate(props) {
@@ -437,11 +437,11 @@ function FormattedDate(props) {
437437

438438
[**Próbáld ki a CodePen-en**](https://codepen.io/gaearon/pen/zKRqNB?editors=0010)
439439

440-
Ezt közismerten "felülről lefelé irányuló", vagy egyirányú adat folyamnak hívjük. Bármilyen állapot mindig is birtokolva van egy bizonyos komponens által és bármilyen adat vagy kezelőfelület ami ebből az állapotból ered csakis ezen komponens "alatt" hathat a fára.
440+
Ezt közismerten "felülről lefelé irányuló", vagy egyirányú adatfolyamnak hívjuk. Egy adott állapotot mindig csak egy bizonyos komponens birtokolhat, és ez az állapot csakis a komponensfában 'alatta lévő' komponensek adataira vagy megjelenésére hathat.
441441

442-
Ha úgy képzelsz el egy komponens fát mint a prop-ok vízesését, minden komponens állapota olyan mint egy plusz vízforrás ami tetszőleges pontokon belecsatlakozik a lefelé haladó áramlatba.
442+
Ha úgy képzelsz el egy komponensfát, mint a prop-ok vízesését, minden komponens állapota olyan, mint egy plusz vízforrás, ami tetszőleges pontokon belecsatlakozik a lefelé haladó áramlatba.
443443

444-
Hogy megmutassuk azt hogy minden komponens tényleg teljesen izolált, készíthetünk egy `App` komponenst ami három `<Clock>`-t renderel:
444+
Hogy megmutassuk azt, hogy minden komponens tényleg teljesen izolált, készíthetünk egy `App` komponenst, ami három `<Clock>`-t renderel:
445445

446446
```js{4-6}
447447
function App() {
@@ -462,6 +462,6 @@ ReactDOM.render(
462462

463463
[**Próbáld ki a CodePen-en**](https://codepen.io/gaearon/pen/vXdGmd?editors=0010)
464464

465-
Minden `Clock` felállítja a saját időzítőjét és egymástól függetlenül frissítenek.
465+
Minden `Clock` beállítja a saját időzítőjét és ezek egymástól függetlenül frissülnek.
466466

467-
Függetlenül attól hogy egy komponens állapot teljes vagy állapot nélküli, a React alkalmazásokban a komponensek implementációs részletei idővel megváltozhatónak tekinthetőek. Használhatsz állapot nélküli komponenseket állapot teljes komponenseken belül, és fordítva.
467+
Az, hogy egy React komponens állapotteljes vagy állapot nélküli, a saját implementációs részletének tekinthető, ami idővel változhat. Emiatt használhatsz állapot nélküli komponenseket állapotteljes komponenseken belül, és ugyanígy fordítva is.

0 commit comments

Comments
 (0)