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/react/useId.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,7 +83,7 @@ function PasswordField() {
83
83
84
84
[Атрибути доступності HTML](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA), як-от [`aria-describedby`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-describedby), дають змогу зазначити, що два теги пов'язані один з одним. Наприклад, ви можете зазначити, що елемент (як-от input) описаний іншим компонентом (як-от параграф).
85
85
86
-
У звичайному HTML ви би написали наступне:
86
+
У звичайному HTML ви б написали наступне:
87
87
88
88
```html {5,8}
89
89
<label>
@@ -94,7 +94,7 @@ function PasswordField() {
94
94
/>
95
95
</label>
96
96
<p id="password-hint">
97
-
Довжина паролю має бути не менш ніж 18 символів
97
+
Довжина паролю має бути не менш ніж 18 символів
98
98
</p>
99
99
```
100
100
@@ -115,7 +115,7 @@ function PasswordField() {
115
115
/>
116
116
</label>
117
117
<p id={passwordHintId}>
118
-
Довжина паролю має бути не менш ніж 18 символів
118
+
Довжина паролю має бути не менш ніж 18 символів
119
119
</p>
120
120
</>
121
121
);
@@ -141,7 +141,7 @@ function PasswordField() {
141
141
/>
142
142
</label>
143
143
<p id={passwordHintId}>
144
-
Довжина паролю має бути не менш ніж 18 символів
144
+
Довжина паролю має бути не менш ніж 18 символів
145
145
</p>
146
146
</>
147
147
);
@@ -179,9 +179,9 @@ input { margin: 5px; }
179
179
180
180
Можливо, вам кортить дізнатися, чому використання `useId` краще за інкрементування глобальної змінної, як наприклад, `nextId++`.
181
181
182
-
Початкова перевага `useId` в тому, що React запевниться, що це працює разом із [серверним рендерингом.](/reference/react-dom/server) Протягом серверного рендерингу, ваш компонент генерує HTML-вивід. Далі на клієнті [гідрація](/reference/react-dom/client/hydrateRoot) прикріплює обробники подій до згенерованого HTML. Для коректної роботи гідрації, клієнтський вивід має збігатись із серверним HTML.
182
+
Початкова перевага `useId` в тому, що React запевниться, що це працює разом із [серверним рендерингом.](/reference/react-dom/server) Протягом серверного рендерингу, ваш компонент генерує HTML-вивід. Далі на клієнті [гідрація](/reference/react-dom/client/hydrateRoot) прикріплює обробники подій до згенерованого HTML. Для коректної роботи гідрації клієнтський вивід має збігатись із серверним HTML.
183
183
184
-
Це складно гарантувати для інкрементного лічильника, бо порядок, за яким клієнтські компоненти проходять гідрацію не збігається з порядком за яким був виданий серверний HTML. Викликаючи `useId`, ви запевняєтеся, що гідрація буде працювати, а серверний і клієнтський виводи будуть збігатися.
184
+
Це складно гарантувати для інкрементного лічильника, бо порядок, за яким клієнтські компоненти проходять гідрацію, не збігається з порядком, за яким був виданий серверний HTML. Викликаючи `useId`, ви запевняєтеся, що гідрація буде працювати, а серверний і клієнтський виводи будуть збігатися.
185
185
186
186
У межах React, `useId` генерується з "батьківського шляху" компонента, що його викликав. Ось чому, якщо клієнтське та серверне дерево однакове, "батьківський шлях" буде збігатися, незважаючи на порядок рендерингу.
187
187
@@ -255,7 +255,7 @@ function PasswordField() {
255
255
/>
256
256
</label>
257
257
<p id={passwordHintId}>
258
-
Довжина паролю має бути не менш ніж 18 символів
258
+
Довжина паролю має бути не менш ніж 18 символів
259
259
</p>
260
260
</>
261
261
);
@@ -309,7 +309,7 @@ input { margin: 5px; }
309
309
310
310
### Використання однакового ID-префікса на клієнті та сервері {/*using-the-same-id-prefix-on-the-client-and-the-server*/}
311
311
312
-
Якщо ви [рендерите декілька незалежних React-застосунків на одній сторінці](#specifying-a-shared-prefix-for-all-generated-ids), і деякі з цих застосунків відрендерені сервером, перевірте, що `identifierPrefix`, який ви передаєте до [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) на клієнті, є тим самим `identifierPrefix`, який ви передаєте до [серверних APIs](/reference/react-dom/server), наприклад, [`renderToPipeableStream`.](/reference/react-dom/server/renderToPipeableStream)
312
+
Якщо ви [рендерите декілька незалежних React-застосунків на одній сторінці](#specifying-a-shared-prefix-for-all-generated-ids), і деякі з цих застосунків відрендерені сервером, перевірте, що `identifierPrefix`, який ви передаєте до [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) на клієнті, є тим самим `identifierPrefix`, який ви передаєте до [серверних API](/reference/react-dom/server), наприклад, [`renderToPipeableStream`.](/reference/react-dom/server/renderToPipeableStream)
0 commit comments