Skip to content

Commit 9cc3645

Browse files
Merge pull request #91 from reactjs/sync-66820686
Sync with reactjs.org @ 6682068
2 parents ce3bac7 + d2e9b66 commit 9cc3645

15 files changed

+338
-77
lines changed

content/blog/2020-10-20-react-v17.md

Lines changed: 169 additions & 0 deletions
Large diffs are not rendered by default.

content/docs/add-react-to-a-website.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,11 @@ A következőben adj hozzá három `<script>` címkét közvetlenül a záró `<
5454
5555
<!-- A React betöltése. -->
5656
<!-- Megjegyzés: publikáláskor, cseréld le a "development.js"-t "production.min.js"-re. -->
57-
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
58-
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
57+
<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
58+
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
5959
6060
<!-- A React komponensünk betöltése. -->
6161
<script src="like_button.js"></script>
62-
6362
</body>
6463
```
6564

@@ -116,8 +115,8 @@ Mielőtt a weboldalt végstádiumba publikálod, tartsd szem előtt, hogy a nem
116115
Ha már csökkented az alkalmazásod scriptjeinek a méretét, **az oldalad készen áll a végstádiumra**, amennyiben a publikált HTML oldalad a `production.min.js` végződésű React verziót tölti be:
117116

118117
```js
119-
<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>
120-
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>
118+
<script src="https://unpkg.com/react@17/umd/react.production.min.js" crossorigin></script>
119+
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js" crossorigin></script>
121120
```
122121

123122
Ha nincs kódcsökkentő lépésed a scriptekhez, [itt egy módja, hogyan tudod ezt beállítani](https://gist.github.com/gaearon/42a2ffa41b8319948f9be4076286e1f3).
@@ -185,7 +184,7 @@ Gratulálunk! Ezzel **beállítottad a JSX publikálásra kész** használatát
185184
Készíts egy `src` nevű mappát és futtasd az alábbi parancsot a terminálodban:
186185

187186
```
188-
npx babel --watch src --out-dir . --presets react-app/prod
187+
npx babel --watch src --out-dir . --presets react-app/prod
189188
```
190189

191190
>Megjegyzés

content/docs/cdn-links.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ next: release-channels.html
99
A React és a ReactDOM egyaránt elérhető CDN-en keresztül.
1010

1111
```html
12-
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
13-
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
12+
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
13+
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
1414
```
1515

1616
A fenti verziók csak a fejlesztésre értendőek, és nem megfelelőek éles környezetben való használathoz. A React kicsinyített és optimalizált változatai a következő helyen érhetőek el:
1717

1818
```html
19-
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
20-
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
19+
<script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
20+
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
2121
```
2222

23-
A `react` és a `react-dom` adott verziójának betöltéséhez cseréld ki a `16`-ot a verziószámra.
23+
A `react` és a `react-dom` egy adott verziójának betöltéséhez cseréld ki a `17`-et a kívánt verziószámra.
2424

2525
### Miért szükséges a `crossorigin` attribútum? {#why-the-crossorigin-attribute}
2626

content/docs/faq-functions.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,9 +289,6 @@ class Searchbox extends React.Component {
289289
}
290290

291291
handleChange(e) {
292-
// React pools events, so we read the value before debounce.
293-
// Alternately we could call `event.persist()` and pass the entire event.
294-
// For more info see reactjs.org/docs/events.html#event-pooling
295292
this.emitChangeDebounced(e.target.value);
296293
}
297294

content/docs/legacy-event-pooling.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
id: legacy-event-pooling
3+
title: Esemény pooling
4+
permalink: docs/legacy-event-pooling.html
5+
---
6+
7+
>Megjegyzés
8+
>
9+
>Ez az oldal csak a React 16 és korábbi veziókra, valamint React Native-re vonatkozik.
10+
>
11+
>A React 17 a weben **nem használ** esemény pooling-ot.
12+
>
13+
>Erről a React 17 változásról [többet itt olvashatsz](/blog/2020/08/10/react-v17-rc.html#no-event-pooling).
14+
15+
A [`SyntheticEvent`](/docs/events.html) objektumok egy közös készletben vannak. Ez azt jelenti, hogy a `SyntheticEvent` objektum újrafelhasználható és minden tulajdonság ki lesz nullázva az esemény callbackjének meghívása után. Ez például nem fog működni:
16+
17+
```javascript
18+
function handleChange(e) {
19+
// Ez nem fog műküdni, mert az esemény objektumok újra fel lesznek használva.
20+
setTimeout(() => {
21+
console.log(e.target.value); // Túl késő!
22+
}, 100);
23+
}
24+
```
25+
26+
Ha szeretnél egy esemény tulajdonságaihoz azután hozzáférni hogy az eseménykezelő lefutott, meg kell hogy hívd az `e.persist()` metódust:
27+
28+
```javascript
29+
function handleChange(e) {
30+
// Megakadályozza a Reactet a tulajdonságok visszaállításában:
31+
e.persist();
32+
33+
setTimeout(() => {
34+
console.log(e.target.value); // Ez működik
35+
}, 100);
36+
}
37+
```

content/docs/optimizing-performance.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ Remember that this is only necessary before deploying to production. For normal
4343
We offer production-ready versions of React and React DOM as single files:
4444

4545
```html
46-
<script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
47-
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
46+
<script src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
47+
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
4848
```
4949

5050
Remember that only React files ending with `.production.min.js` are suitable for production.
@@ -75,10 +75,10 @@ For the most efficient Browserify production build, install a few plugins:
7575

7676
```
7777
# If you use npm
78-
npm install --save-dev envify terser uglifyify
78+
npm install --save-dev envify terser uglifyify
7979
8080
# If you use Yarn
81-
yarn add --dev envify terser uglifyify
81+
yarn add --dev envify terser uglifyify
8282
```
8383

8484
To create a production build, make sure that you add these transforms **(the order matters)**:
@@ -379,7 +379,7 @@ function updateColorMap(colormap) {
379379
}
380380
```
381381

382-
This feature was added to JavaScript in ES2018.
382+
This feature was added to JavaScript in ES2018.
383383

384384
If you're using Create React App, both `Object.assign` and the object spread syntax are available by default.
385385

content/docs/reference-events.md

Lines changed: 85 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -34,36 +34,11 @@ string type
3434

3535
> Megjegyzés:
3636
>
37-
> A v0.14-től kezdve `false` érték visszaadása egy eseménykezelőben nem állítja meg az esemény terjedését. Ehelyett manuálisan kell, hogy meghívd vagy az `e.stopPropagation()`-t, vagy az `e.preventDefault`-ot, attól függően melyik a helyes a te esetedben.
38-
39-
### Események összegyűjtése {#event-pooling}
40-
41-
A `SyntheticEvent` egy közös készletben van. Ez azt jelenti, hogy a `SyntheticEvent` objektum újrafelhasználható és minden tulajdonság ki lesz nullázva az esemény callbackjének meghívása után.
42-
Ez a teljesítmény növelése érdekében történik.
43-
Így az eseményhez nem férhetsz aszinkron módon.
44-
45-
```javascript
46-
function onClick(event) {
47-
console.log(event); // => kinullázott objektum.
48-
console.log(event.type); // => "click"
49-
const eventType = event.type; // => "click"
50-
51-
setTimeout(function() {
52-
console.log(event.type); // => null
53-
console.log(eventType); // => "click"
54-
}, 0);
55-
56-
// Nem fog működni. A this.state.clickEvent csak null értékeket fog tartalmazni.
57-
this.setState({clickEvent: event});
58-
59-
// Az esemény értékeket még így is ki tudod exportálni.
60-
this.setState({eventType: event.type});
61-
}
62-
```
37+
> A React 17-től kezdve az `e.persist()` nem csinál semmit, mivel a `SyntheticEvent` többé nincs ["összegyűtjve"](/docs/legacy-event-pooling.html).
6338
6439
> Megjegyzés:
6540
>
66-
> Ha szeretnél az események tulajdonságaihoz aszinkron módon hozzáférni, meg kell hogy hívd az `event.persist()` metódust az eseményen, ami eltávolítja a szintetikus eseményt a medencéből és lehetővé teszi az eseményre mutató hivatkozások megtartását felhasználói kóddal.
41+
> A v0.14-től kezdve `false` érték visszaadása egy eseménykezelőben nem állítja meg az esemény terjedését. Ehelyett manuálisan kell, hogy meghívd vagy az `e.stopPropagation()`-t, vagy az `e.preventDefault`-ot, attól függően melyik a helyes a te esetedben.
6742
6843
## Támogatott események {#supported-events}
6944

@@ -72,13 +47,15 @@ A React normalizálja az eseményeket annak érdekében, hogy a tulajdonságaik
7247
Az alábbi eseménykezelők egy esemény által lettek elindítva a "bubbling" fázisban. Egy eseménykezelő regisztrálásához a "capture" fázisban add hozzá a `Capture` szót az esemény nevéhez; például az `onClick` helyett használd az `onClickCapture`-t kattintási események kezeléséhez a capture fázisban.
7348

7449
- [Áttekintés {#overview}](#áttekintés-overview)
75-
- [Események összegyűjtése {#event-pooling}](#események-összegyűjtése-event-pooling)
7650
- [Támogatott események {#supported-events}](#támogatott-események-supported-events)
7751
- [Referencia {#reference}](#referencia-reference)
7852
- [Vágólapesemények {#clipboard-events}](#vágólapesemények-clipboard-events)
7953
- [Kompozíció-események {#composition-events}](#kompozíció-események-composition-events)
8054
- [Billentyűzet-események {#keyboard-events}](#billentyűzet-események-keyboard-events)
8155
- [Fókuszálás-események {#focus-events}](#fókuszálás-események-focus-events)
56+
- [onFocus](#onfocus)
57+
- [onBlur](#onblur)
58+
- [Fókuszálás és fókuszálás elvesztésének detektálása](#fókuszálás-és-fókuszálás-elvesztésének-detektálása)
8259
- [Űrlapesemények {#form-events}](#űrlapesemények-form-events)
8360
- [Általános események {#generic-events}](#általános-események-generic-events)
8461
- [Egéresemények {#mouse-events}](#egéresemények-mouse-events)
@@ -171,10 +148,85 @@ Ezek a fókuszálás-események minden elemen működnek a React DOM-ban, nem cs
171148

172149
Tulajdonságok:
173150

174-
```javascript
151+
```js
175152
DOMEventTarget relatedTarget
176153
```
177154

155+
#### onFocus
156+
157+
Az `onFocus` esemény akkor van meghívva, amikor az elem (vagy valamelyik elem azon belül) fókuszálva van. Például amikor a felhasználó egy szöveg beivteli mezőre kattint.
158+
159+
```javascript
160+
function Example() {
161+
return (
162+
<input
163+
onFocus={(e) => {
164+
console.log('Fókuszálva a beviteli mezőre');
165+
}}
166+
placeholder="Az onFocus meg lesz hívva, ha erre a beviteli mezőre kattintasz."
167+
/>
168+
)
169+
}
170+
```
171+
172+
#### onBlur
173+
174+
Az `onBlur` esemény akkor van meghívva, amikor a fókuszálás elhagyta az elemet (vagy valamelyik elemet azon belül). Például akkor, amikor a felhasználó egy fókuszált szöveg beviteli mezőn kívülre kattint.
175+
176+
```javascript
177+
function Example() {
178+
return (
179+
<input
180+
onBlur={(e) => {
181+
console.log('Meghívva, mivel a beviteli mező elvesztette a fókuszt');
182+
}}
183+
placeholder="Az onBlur meg lesz hívva, ha erre a beviteli mezőre kattintasz, majd utána ezen kívülre."
184+
/>
185+
)
186+
}
187+
```
188+
189+
#### Fókuszálás és fókuszálás elvesztésének detektálása
190+
191+
You can use the `currentTarget` and `relatedTarget` to differentiate if the focusing or blurring events originated from _outside_ of the parent element. Here is a demo you can copy and paste that shows how to detect focusing a child, focusing the element itself, and focus entering or leaving the whole subtree.
192+
Használhatod a `currentTarget` és `releatedTarget`-et, hogy meg tudd különböztetni, hogy a fókuszálás vagy fókuszálás elvesztésének eseménye a szülő komponensen _kívülről_ jön-e. Itt egy demo amit kimásolhatsz és beilleszthetsz, ami megmutatja hogyan detektálj fókuszálást egy gyermek elemre, magára az elemre, és fókuszálást vagy fókuszálás elvesztést a teljes alfára.
193+
194+
```javascript
195+
function Example() {
196+
return (
197+
<div
198+
tabIndex={1}
199+
onFocus={(e) => {
200+
if (e.currentTarget === e.target) {
201+
console.log('saját magára fókuszált');
202+
} else {
203+
console.log('gyermekre fókuszált', e.target);
204+
}
205+
if (!e.currentTarget.contains(e.relatedTarget)) {
206+
// Nincs meghívva gyermekek közti fókuszálás csere közt
207+
console.log('fókusz belépés saját magára');
208+
}
209+
}}
210+
onBlur={(e) => {
211+
if (e.currentTarget === e.target) {
212+
console.log('saját maga fókuszálásának elvesztése');
213+
} else {
214+
console.log('gyermek fókuszálásának elvesztése', e.target);
215+
}
216+
if (!e.currentTarget.contains(e.relatedTarget)) {
217+
// Nincs meghívva gyermekek közti fókuszálás csere közt
218+
console.log('fókuszálás elvesztése saját magáról');
219+
}
220+
}}
221+
>
222+
<input id="1" />
223+
<input id="2" />
224+
</div>
225+
);
226+
}
227+
```
228+
229+
178230
* * *
179231

180232
### Űrlapesemények {#form-events}
@@ -310,6 +362,10 @@ Eseménynevek:
310362
onScroll
311363
```
312364

365+
>Megjegyzés
366+
>
367+
>A React 17-től kezdve az `onScroll` esemény **nem használ "bubbling"-et**. Ez megegyezik a böngésző viselkedésével és meggátolja hogy egymásba ágyazott görgethető elemek eseményeket generáljanak egy távoli szülő elemen.
368+
313369
Tulajdonságok:
314370

315371
```javascript

content/docs/testing-recipes.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,6 @@ let container = null;
377377
beforeEach(() => {
378378
// setup a DOM element as a render target
379379
container = document.createElement("div");
380-
// container *must* be attached to document so events work correctly.
381380
document.body.appendChild(container);
382381
});
383382
@@ -416,7 +415,7 @@ it("changes value when clicked", () => {
416415
});
417416
```
418417

419-
Different DOM events and their properties are described in [MDN](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent). Note that you need to pass `{ bubbles: true }` in each event you create for it to reach the React listener because React automatically delegates events to the document.
418+
Different DOM events and their properties are described in [MDN](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent). Note that you need to pass `{ bubbles: true }` in each event you create for it to reach the React listener because React automatically delegates events to the root.
420419

421420
> Note:
422421
>

content/versions.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
- title: '17.0.1'
2+
changelog: https://github.com/facebook/react/blob/master/CHANGELOG.md#1701-october-22-2020
3+
- title: '17.0.0'
4+
changelog: https://github.com/facebook/react/blob/master/CHANGELOG.md#1700-october-20-2020
15
- title: '16.14.0'
26
changelog: https://github.com/facebook/react/blob/master/CHANGELOG.md#16140-october-14-2020
37
- title: '16.13.1'

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@
4747
"normalize.css": "^8.0.0",
4848
"prettier": "^1.7.4",
4949
"prismjs": "^1.15.0",
50-
"react": "^17.0.0-rc.3",
51-
"react-dom": "^17.0.0-rc.3",
50+
"react": "^17.0.1",
51+
"react-dom": "^17.0.1",
5252
"react-helmet": "^5.2.0",
5353
"react-live": "1.8.0-0",
5454
"remarkable": "^1.7.1",

0 commit comments

Comments
 (0)