Skip to content

Commit f8d2397

Browse files
committed
fix: fixing some typos and code issues
1 parent 5dbaec2 commit f8d2397

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

src/content/learn/rendering-lists.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ title: Рендер списков
3030
</ul>
3131
```
3232

33-
Единственная разница между этими элементами списка - их содержимое, их данные. При построении интерфейсов вам часто нужно показывать несколько экземпляров одного и того же компонента, используя разные данные: от списков комментариев до галерей профилей. В таких ситуациях вы можете хранить эти данные в объектах и массивах JavaScript и использовать методы, такие как [`map()`](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map) и [`filter()`](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), чтобы рендерить списки компонентов с данными из них.
33+
Единственная разница между этими элементами списка - их содержимое, их данные. При построении интерфейсов вам часто нужно показывать несколько экземпляров одного и того же компонента, используя различные данные: от списков комментариев до галерей профилей. В таких ситуациях вы можете хранить эти данные в объектах и массивах JavaScript и использовать методы, такие как [`map()`](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map) и [`filter()`](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), чтобы рендерить списки компонентов с данными из них.
3434

3535
Вот короткий пример того, как сгенерировать список элементов из массива:
3636

@@ -52,7 +52,7 @@ const people = [
5252
const listItems = people.map(person => <li>{person}</li>);
5353
```
5454

55-
3. **Верните** `listItems` из вашего компонента, обернув их в тег`<ul>`:
55+
3. **Верните** `listItems` из вашего компонента, обернув их в тег `<ul>`:
5656

5757
```js
5858
return <ul>{listItems}</ul>;
@@ -121,7 +121,7 @@ const people = [{
121121
}];
122122
```
123123

124-
Допустим, вам нужен способ отображать только людей, чья профессия `'chemist'`. Вы можете использовать метод JavaScript `filter()` чтобы вернуть только этих людей. Этот метод принимает массив элементов, пропускает их через «тест» (функция, которая возвращает `true` или `false`) и возвращает новый массив только из тех элементов, которые прошли тест (вернули `true`).
124+
Допустим, вам нужен способ отображать только людей, чья профессия `'химик'`. Вы можете использовать метод JavaScript `filter()` чтобы вернуть только этих людей. Этот метод принимает массив элементов, пропускает их через «тест» (функция, которая возвращает `true` или `false`) и возвращает новый массив только из тех элементов, которые прошли тест (вернули `true`).
125125

126126
В нашем случае мы хотим отобразить только те элементы, где `profession` является `'химик'`. «Тест» для этого выглядит так: `(person) => person.profession === 'химик'`. Вот как собрать все воедино:
127127

@@ -165,7 +165,7 @@ import { getImageUrl } from './utils.js';
165165

166166
export default function List() {
167167
const chemists = people.filter(person =>
168-
person.profession === 'chemist'
168+
person.profession === 'химик'
169169
);
170170
const listItems = chemists.map(person =>
171171
<li>
@@ -189,7 +189,7 @@ export const people = [{
189189
id: 0,
190190
name: 'Креола Кэтрин Джонсон (Creola Katherine Johnson)',
191191
profession: 'математик',
192-
accomplishment: 'расчеты для космических полетов',
192+
accomplishment: 'расчёты для космических полетов',
193193
imageId: 'MK3eW3A'
194194
}, {
195195
id: 1,
@@ -213,7 +213,7 @@ export const people = [{
213213
id: 4,
214214
name: 'Субраманьян Чандрасекар (Subrahmanyan Chandrasekhar)',
215215
profession: 'астрофизик',
216-
accomplishment: 'расчет массы белого карлика',
216+
accomplishment: 'расчёт массы белого карлика',
217217
imageId: 'lrWQx8l'
218218
}];
219219
```
@@ -320,7 +320,7 @@ export const people = [{
320320
id: 0, // Используется в JSX в качестве ключа
321321
name: 'Креола Кэтрин Джонсон (Creola Katherine Johnson)',
322322
profession: 'математик',
323-
accomplishment: 'расчеты для космических полетов',
323+
accomplishment: 'расчёты для космических полетов',
324324
imageId: 'MK3eW3A'
325325
}, {
326326
id: 1, // Используется в JSX в качестве ключа
@@ -344,7 +344,7 @@ export const people = [{
344344
id: 4, // Используется в JSX в качестве ключа
345345
name: 'Субраманьян Чандрасекар (Subrahmanyan Chandrasekhar)',
346346
profession: 'астрофизик',
347-
accomplishment: 'расчет массы белого карлика',
347+
accomplishment: 'расчёт массы белого карлика',
348348
imageId: 'lrWQx8l'
349349
}];
350350
```
@@ -379,7 +379,7 @@ img { width: 100px; height: 100px; border-radius: 50%; }
379379

380380
Как поступить, если каждый элемент должен отображать не один, а несколько DOM узлов?
381381

382-
Краткий синтаксис [`<>...</>` фрагмента](/reference/react/Fragment) не позволяет передавать ключ, поэтому вам нужно либо объединить их в один `<div>`, либо использовать немного более длинный и [более явный `<Fragment>`:](/reference/react/Fragment#rendering-a-list-of-fragments)
382+
Краткий синтаксис [`<>...</>` фрагмента](/reference/react/Fragment) не позволяет передавать ключ, поэтому вам нужно либо объединить их в один `<div>`, либо использовать чуть более длинный и [более явный `<Fragment>`:](/reference/react/Fragment#rendering-a-list-of-fragments)
383383

384384
```js
385385
import { Fragment } from 'react';
@@ -414,15 +414,15 @@ const listItems = people.map(person =>
414414

415415
### Почему React нужны ключи? {/*why-does-react-need-keys*/}
416416

417-
Представьте что у файлов на вашем рабочем столе не было имен. Взамен, вы бы ссылались на них по их порядку -- первый файл, второй файл, и т. д. Возможно к этому и можно привыкнуть, но когда вы удалите какой-либо файл, порядок изменится и все станет запутанным. Второй файл станет первым, третий файл станет вторым, и т. д.
417+
Представьте что у файлов на вашем рабочем столе не было бы имен. Взамен, вы бы ссылались на них по их порядку -- первый файл, второй файл, и т.д. Возможно к этому и можно привыкнуть, но когда вы удалите какой-либо файл, порядок изменится и все станет запутанным. Второй файл станет первым, третий файл станет вторым, и т. д.
418418

419-
Названия файлов в папке и JSX ключи в массиве имеют схожую цель. Они позволяют нам отличать элементы от их соседей. А хорошо выбранный ключ предоставляет больше информации, чем позиция в массиве. Даже если _позиция_ изменится из-за смены порядка, `key` позволит React идентифицировать элемент на протяжении всего существования элемента.
419+
Названия файлов в папке и JSX ключи в массиве имеют схожую цель. Они позволяют нам отличать элементы от их других элементов в массиве. А хорошо выбранный ключ предоставляет больше информации, чем позиция в массиве. Даже если _позиция_ изменится из-за смены порядка, `key` позволит React идентифицировать элемент на протяжении всего существования элемента.
420420

421421
<Pitfall>
422422

423-
Возможно вам захочется использовать индекс элемента в массиве в качестве ключа. В действительности, это то, что React будет использовать, если вы не укажете `key`. Но порядок, в котором вы рендерите элементы, может поменяться со временем, если элемент будет вставлен, удален или если массив будет переупорядочен. Индекс в качестве ключа часто приводит к коварным и сбивающим с толку ошибкам.
423+
Возможно вам захочется использовать индекс элемента в массиве в качестве ключа. В действительности, это то, что React будет использовать, если вы не укажете `key`. Но порядок, в котором вы рендерите элементы, может поменяться со временем, если какой-либо элемент будет вставлен, удален или если массив будет переупорядочен. Индекс в качестве ключа часто приводит к коварным и сбивающим с толку ошибкам.
424424

425-
Аналогично, не генерируйте ключи на лету, например, с помощью `key={Math.random()}`. Это приведет к тому, что ключи никогда не будут совпадать между рендерами, что приведет к тому, что все ваши компоненты и DOM будут пересоздаваться каждый раз. Это не только медленно, но также приведет к потере любых данных введённых пользователем внутри элементов списка. Вместо этого используйте стабильный ID, основанный на данных.
425+
Аналогично, не генерируйте ключи на лету, например, с помощью `key={Math.random()}`. Это приведет к тому, что ключи никогда не будут совпадать между рендерами, что приведет к пересозданию всех ваших компонентов и DOM каждый раз. Это не только медленно, но также приведет к потере любых данных введённых пользователем внутри элементов списка. Вместо этого используйте стабильный ID, основанный на данных.
426426

427427
Заметьте, что ваши компоненты не получат `key` в качестве пропа. Он используется только как подсказка для React. Если ваш компонент нуждается в ID, вы должны передать его как отдельный проп: `<Profile key={id} userId={id} />`..
428428

@@ -483,7 +483,7 @@ export const people = [{
483483
id: 0,
484484
name: 'Креола Кэтрин Джонсон (Creola Katherine Johnson)',
485485
profession: 'математик',
486-
accomplishment: 'расчеты для космических полетов',
486+
accomplishment: 'расчёты для космических полетов',
487487
imageId: 'MK3eW3A'
488488
}, {
489489
id: 1,
@@ -507,7 +507,7 @@ export const people = [{
507507
id: 4,
508508
name: 'Субраманьян Чандрасекар (Subrahmanyan Chandrasekhar)',
509509
profession: 'астрофизик',
510-
accomplishment: 'расчет массы белого карлика',
510+
accomplishment: 'расчёт массы белого карлика',
511511
imageId: 'lrWQx8l'
512512
}];
513513
```
@@ -598,7 +598,7 @@ export const people = [{
598598
id: 0,
599599
name: 'Креола Кэтрин Джонсон (Creola Katherine Johnson)',
600600
profession: 'математик',
601-
accomplishment: 'расчеты для космических полетов',
601+
accomplishment: 'расчёты для космических полетов',
602602
imageId: 'MK3eW3A'
603603
}, {
604604
id: 1,
@@ -622,7 +622,7 @@ export const people = [{
622622
id: 4,
623623
name: 'Субраманьян Чандрасекар (Subrahmanyan Chandrasekhar)',
624624
profession: 'астрофизик',
625-
accomplishment: 'расчет массы белого карлика',
625+
accomplishment: 'расчёт массы белого карлика',
626626
imageId: 'lrWQx8l'
627627
}];
628628
```
@@ -674,8 +674,8 @@ function ListSection({ title, people }) {
674674
/>
675675
<p>
676676
<b>{person.name}:</b>
677-
{' ' + person.profession + ' '}
678-
known for {person.accomplishment}
677+
{' ' + person.profession + ' '}.
678+
Достижение: {person.accomplishment}
679679
</p>
680680
</li>
681681
)}
@@ -712,7 +712,7 @@ export const people = [{
712712
id: 0,
713713
name: 'Креола Кэтрин Джонсон (Creola Katherine Johnson)',
714714
profession: 'математик',
715-
accomplishment: 'расчеты для космических полетов',
715+
accomplishment: 'расчёты для космических полетов',
716716
imageId: 'MK3eW3A'
717717
}, {
718718
id: 1,
@@ -736,7 +736,7 @@ export const people = [{
736736
id: 4,
737737
name: 'Субраманьян Чандрасекар (Subrahmanyan Chandrasekhar)',
738738
profession: 'астрофизик',
739-
accomplishment: 'расчет массы белого карлика',
739+
accomplishment: 'расчёт массы белого карлика',
740740
imageId: 'lrWQx8l'
741741
}];
742742
```
@@ -830,7 +830,7 @@ export const people = [{
830830
id: 0,
831831
name: 'Креола Кэтрин Джонсон (Creola Katherine Johnson)',
832832
profession: 'математик',
833-
accomplishment: 'расчеты для космических полетов',
833+
accomplishment: 'расчёты для космических полетов',
834834
imageId: 'MK3eW3A'
835835
}, {
836836
id: 1,
@@ -854,7 +854,7 @@ export const people = [{
854854
id: 4,
855855
name: 'Субраманьян Чандрасекар (Subrahmanyan Chandrasekhar)',
856856
profession: 'астрофизик',
857-
accomplishment: 'расчет массы белого карлика',
857+
accomplishment: 'расчёт массы белого карлика',
858858
imageId: 'lrWQx8l'
859859
}];
860860
```

0 commit comments

Comments
 (0)