diff --git a/content/docs/hooks-state.md b/content/docs/hooks-state.md index 0b4d15b65..59af2ccc2 100644 --- a/content/docs/hooks-state.md +++ b/content/docs/hooks-state.md @@ -1,38 +1,38 @@ --- id: hooks-state -title: Using the State Hook +title: Állapot Horog használata permalink: docs/hooks-state.html next: hooks-effect.html prev: hooks-overview.html --- -*Hooks* are a new addition in React 16.8. They let you use state and other React features without writing a class. +A *Horgok* a React egy új kiegészítése a 16.8-as verziótól kezdve. Lehetővé teszik számodra állapotok és más React funkciók használatát osztályok írása nélkül. -The [introduction page](/docs/hooks-intro.html) used this example to get familiar with Hooks: +A [bevezető](/docs/hooks-intro.html) ezt a példát használta a Horgok bemutatására: ```js{4-5} import React, { useState } from 'react'; function Example() { - // Declare a new state variable, which we'll call "count" + // Egy új állapotváltozó deklarálása, amit "count"-nak nevezünk el const [count, setCount] = useState(0); return (
-

You clicked {count} times

+

{count} alkalommal kattintottál

); } ``` -We'll start learning about Hooks by comparing this code to an equivalent class example. +A Horgok bevezetéseképpen először ezt a kódot fogjuk összehasonlítani egy osztályok segítségével írt megfelelőjével: -## Equivalent Class Example {#equivalent-class-example} +## Osztállyal írt ekvivalens {#equivalent-class-example} -If you used classes in React before, this code should look familiar: +Ha már használtál React osztályokat, ez a kód ismerősnek tűnhet: ```js class Example extends React.Component { @@ -46,9 +46,9 @@ class Example extends React.Component { render() { return (
-

You clicked {this.state.count} times

+

{this.state.count} alkalommal kattintottál

); @@ -56,39 +56,39 @@ class Example extends React.Component { } ``` -The state starts as `{ count: 0 }`, and we increment `state.count` when the user clicks a button by calling `this.setState()`. We'll use snippets from this class throughout the page. +Az állapot először `{ count: 0 }` értéket vesz fel, ezután megnöveljük a `state.count` értékét, amikor a felhasználó rákattint a gombra, a `this.setState()` meghívásával. A későbbiekben ebből az osztályból fogunk idézni. ->Note +>Megjegyzés > ->You might be wondering why we're using a counter here instead of a more realistic example. This is to help us focus on the API while we're still making our first steps with Hooks. +>Esetleg elgondolkozhattál azon, hogy miért egy számlálót használunk itt egy realisztikusabb példa helyett. Ez azért van, hogy az API-ra tudjunk fókuszálni, amíg még csak ismerkedünk a Horgokkal. -## Hooks and Function Components {#hooks-and-function-components} +## Horgok és függvénykomponensek {#hooks-and-function-components} -As a reminder, function components in React look like this: +Emlékeztetőül, a függvénykomponensek így néznek ki Reactben: ```js const Example = (props) => { - // You can use Hooks here! + // Itt használhatsz Horgokat! return
; } ``` -or this: +vagy így: ```js function Example(props) { - // You can use Hooks here! + // Itt használhatsz Horgokat! return
; } ``` -You might have previously known these as "stateless components". We're now introducing the ability to use React state from these, so we prefer the name "function components". +Ezeket előzőleg "állapot nélküli komponenseknek" hívtuk. Mostantól kezdve viszont már használhatsz állapotot is ezekben, így ezentúl inkább "függvénykomponensekként" hivatkozunk rájuk. -Hooks **don't** work inside classes. But you can use them instead of writing classes. +A Horgok **nem** működnek osztályokon belül. De használhatod őket osztályok helyett. -## What's a Hook? {#whats-a-hook} +## Mi is a Horog? {#whats-a-hook} -Our new example starts by importing the `useState` Hook from React: +Az új példánk a `useState` Horog importálásával kezdődik: ```js{1} import React, { useState } from 'react'; @@ -98,17 +98,17 @@ function Example() { } ``` -**What is a Hook?** A Hook is a special function that lets you "hook into" React features. For example, `useState` is a Hook that lets you add React state to function components. We'll learn other Hooks later. +**Mi is a Horog?** A Horog egy speciális függvény, aminek a segítségével "beleakaszkodhatsz" React funkciókba. Például a `useState` egy olyan Horog, aminek a segítségével állapotot adhatsz hozzá a függvénykomponensekhez. Később többféle Horgot is megvizsgálunk. -**When would I use a Hook?** If you write a function component and realize you need to add some state to it, previously you had to convert it to a class. Now you can use a Hook inside the existing function component. We're going to do that right now! +**Mikor használjak Horgokat?** Ha van egy függvénykomponensed, amihez állapotot szeretnél hozzáadni, előzőleg osztállyá kellett konvertálnod. Mostantól kezdve viszont Horgokat is használhatsz ehelyett a meglévő függvénykomponensben. Most ezt fogjuk kipróbálni! ->Note: +>Megjegyzés: > ->There are some special rules about where you can and can't use Hooks within a component. We'll learn them in [Rules of Hooks](/docs/hooks-rules.html). +>Van néhány speciális szabály, hogy hol és hogyan használhatsz Horgokat egy komponensen belül. Ezekről a [Horgok szabályai](/docs/hooks-rules.html) fejezetben tanulunk majd. -## Declaring a State Variable {#declaring-a-state-variable} +## Állapotváltozó deklarálása {#declaring-a-state-variable} -In a class, we initialize the `count` state to `0` by setting `this.state` to `{ count: 0 }` in the constructor: +Egy osztályban a `count` állapotváltozó `0`-ra inicializálása a `this.state` `{ count: 0 }`-ra állításával történik a konstruktorban: ```js{4-6} class Example extends React.Component { @@ -120,76 +120,76 @@ class Example extends React.Component { } ``` -In a function component, we have no `this`, so we can't assign or read `this.state`. Instead, we call the `useState` Hook directly inside our component: +Egy függvénykomponensben nincs `this`, így nem tudjuk beállítani vagy kiolvasni a `this.state`-et. Ehelyett közvetlenül a `useState` Horgot hívjuk meg a komponensben: ```js{4,5} import React, { useState } from 'react'; function Example() { - // Declare a new state variable, which we'll call "count" + // Egy új állapotváltozó deklarálása, amit "count"-nak nevezünk el const [count, setCount] = useState(0); ``` -**What does calling `useState` do?** It declares a "state variable". Our variable is called `count` but we could call it anything else, like `banana`. This is a way to "preserve" some values between the function calls — `useState` is a new way to use the exact same capabilities that `this.state` provides in a class. Normally, variables "disappear" when the function exits but state variables are preserved by React. +**Mit csinál a `useState` hívás?** Ez egy "állapotváltozót" deklarál. A mi változónkat `count`-nak hívják, de bármi másnak is elnevezhetjük, például `banana`. Ez egy módszer az értékek "megőrzésére" a függvényhívások között — a `useState` egy új módszer ugyanarra, amit a `this.state`-tel érünk el az osztályokban. Normális esetben a változók "eltűnnek" a függvény hívásának befejezésekor, de az állapotváltozókat a React megőrzi. -**What do we pass to `useState` as an argument?** The only argument to the `useState()` Hook is the initial state. Unlike with classes, the state doesn't have to be an object. We can keep a number or a string if that's all we need. In our example, we just want a number for how many times the user clicked, so pass `0` as initial state for our variable. (If we wanted to store two different values in state, we would call `useState()` twice.) +**Mit adunk át argumentumként a `useState`-nek?** Az egyetlen argumentum a `useState()` Horogban a kezdeti állapot. Az osztályokkal ellentétben az állapotváltozónak nem kell objektumnak lennie. Használhatunk egy sima számot vagy sztringet, ha csak erre van épp szükségünk. A fenti példánkban csak egy számra van szükségünk a felhasználói kattintások számának tárolására, így `0`-t adunk meg kezdeti értékként. (Ha két különböző értéket szeretnénk tárolni az állapotban, a `useState()`-et kétszer hívnánk meg.) -**What does `useState` return?** It returns a pair of values: the current state and a function that updates it. This is why we write `const [count, setCount] = useState()`. This is similar to `this.state.count` and `this.setState` in a class, except you get them in a pair. If you're not familiar with the syntax we used, we'll come back to it [at the bottom of this page](/docs/hooks-state.html#tip-what-do-square-brackets-mean). +**Mit ad vissza a `useState`?** Két értéket ad vissza: a jelenlegi állapotváltozót és egy függvényt, amivel ezt frissíteni tudjuk. Ezért írjuk így: `const [count, setCount] = useState()`. Ez hasonló a `this.state.count` és `this.setState`-hez egy osztályban, kivéve, hogy ezek párban érkeznek. Ha még nem barátkoztál meg ezzel a szintaxissal, vissza fogunk erre térni az [oldal alján](/docs/hooks-state.html#tip-what-do-square-brackets-mean). -Now that we know what the `useState` Hook does, our example should make more sense: +Most, hogy tudjuk, hogy mit csinál a `useState` Horog, a példánk jobban érthető: ```js{4,5} import React, { useState } from 'react'; function Example() { - // Declare a new state variable, which we'll call "count" + // Egy új állapotváltozó deklarálása, amit "count"-nak fogunk hívni const [count, setCount] = useState(0); ``` -We declare a state variable called `count`, and set it to `0`. React will remember its current value between re-renders, and provide the most recent one to our function. If we want to update the current `count`, we can call `setCount`. +Egy `count` állapotváltozót deklarálunk és `0`-ra állítjuk. A React megjegyzi az értékét a renderelések között, és a legfrissebb értéket adja át függvényünknek. Ha meg szeretnénk változtatni a `count` értékét, meghívhatjuk a `setCount`-ot. ->Note +>Megjegyzés > ->You might be wondering: why is `useState` not named `createState` instead? +>Esetleg ezen tűnődhetsz: a `useState`-et miért nem `createState`-nek hívjuk? > ->"Create" wouldn't be quite accurate because the state is only created the first time our component renders. During the next renders, `useState` gives us the current state. Otherwise it wouldn't be "state" at all! There's also a reason why Hook names *always* start with `use`. We'll learn why later in the [Rules of Hooks](/docs/hooks-rules.html). +>A "Create" (létrehozás) nem lenne teljesen pontos megnevezés, mivel az állapot csak az első renderelés alkalmával hozódik létre. A későbbi renderelésekkor a `useState` a legfrissebb állapotot adja vissza. Különben nem lenne "állapot"! Egy másik oka is van, hogy a Horog nevek miért *mindig* `use`-zal kezdődnek. Hogy miért, arról a [Horgok szabályai](/docs/hooks-rules.html) részben tanulunk majd. -## Reading State {#reading-state} +## Az állapot kiolvasása {#reading-state} -When we want to display the current count in a class, we read `this.state.count`: +Ha a jelenlegi count értéket szeretnénk kiolvasni egy osztályban, a `this.state.count`-et olvassuk: ```js -

You clicked {this.state.count} times

+

{this.state.count} alkalommal kattintottál

``` -In a function, we can use `count` directly: +Egy függvényben a `count` változót közvetlenül tudjuk használni: ```js -

You clicked {count} times

+

{count} alkalommal kattintottál

``` -## Updating State {#updating-state} +## Az állapot módosítása {#updating-state} -In a class, we need to call `this.setState()` to update the `count` state: +Egy osztályban a `count` változót a `this.setState()` meghívásával tudjuk módosítani: ```js{1} ``` -In a function, we already have `setCount` and `count` as variables so we don't need `this`: +Egy függvényben már van `setCount` és `count` változónk, így nincs szükségünk a `this`-re: ```js{1} ``` -## Recap {#recap} +## Összefoglalás {#recap} -Let's now **recap what we learned line by line** and check our understanding. +Most **összegezzünk, hogy mit tanultunk eddig sorról-sorra** és figyeljük meg, hogy mindent értünk-e.