Skip to content

Commit 7be4c17

Browse files
authored
Merge pull request #634 from reactjs/sync-16158f19
Sync with reactjs.org @ 16158f1
2 parents 90800ec + b8575ea commit 7be4c17

File tree

11 files changed

+19
-49
lines changed

11 files changed

+19
-49
lines changed

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,9 @@
4949

5050
### Отправка изменений
5151

52-
1. `git add -A && git commit -m "Мой текст"` (замените `Мой текст` на подходящее сообщение, например `Fix header logo on Android`) для сохранения ваших изменений
53-
1. `git push my-fork-name the-name-of-my-branch`
54-
1. Перейдите на [страницу репозитория ru.reactjs.org](https://github.com/reactjs/ru.reactjs.org) — вы должны увидеть вашу веткy.
52+
1. Перейдите на [страницу репозитория ru.reactjs.org](https://github.com/reactjs/ru.reactjs.org) и вы увидите уведомление с вашей веткой.
5553
1. Следуйте инструкциям на GitHub.
56-
1. По возможности добавьте скриншот с наглядными изменениями. Как только вы сделаете PR, автоматически будет создан Netlify-билд, так что люди смогут посмотреть ваши изменения.
54+
1. По возможности добавьте скриншот с сделанными изменениями. Как только вы сделаете PR, автоматически будет создана версия сайта с вашими изменениями на [Netlify](https://www.netlify.com/).
5755

5856
## Перевод
5957

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ React 17 supports the [new JSX transform](/blog/2020/09/22/introducing-the-new-j
5858

5959
## React Native {#react-native}
6060

61-
React Native has a separate release schedule. We currently expect the support for React 17 to land in React Native 0.65, but the exact version is subject to change. As always, you can track the release discussions on the React Native Community releases [issue tracker](https://github.com/react-native-community/releases).
61+
React Native has a separate release schedule. We landed the support for React 17 in React Native 0.64. As always, you can track the release discussions on the React Native Community releases [issue tracker](https://github.com/react-native-community/releases).
6262

6363
## Installation {#installation}
6464

content/community/courses.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ permalink: community/courses.html
2828

2929
- [Egghead.io](https://egghead.io/browse/frameworks/react) - Short instructional videos on React and many other topics.
3030

31-
- [Frontend Masters](https://frontendmasters.com/courses/) - Video courses on React and other frontend frameworks.
31+
- [Frontend Masters](https://frontendmasters.com/learn/react/) - Video courses on React.
3232

3333
- [Fullstack React](https://www.fullstackreact.com/) - The up-to-date, in-depth, complete guide to React and friends.
3434

content/community/videos.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ Videos dedicated to the discussion of React and the React ecosystem.
1313
### React Conf 2019 {#react-conf-2019}
1414

1515
A playlist of videos from React Conf 2019.
16-
<iframe title="React Conf 2019" width="650" height="366" src="https://www.youtube-nocookie.com/embed/videoseries?list=PLPxbbTqCLbGHPxZpw4xj_Wwg8-fdNxJRh" frameborder="0" allowfullscreen></iframe>
16+
<iframe title="React Conf 2019" width="650" height="366" src="https://www.youtube-nocookie.com/embed/playlist?list=PLPxbbTqCLbGHPxZpw4xj_Wwg8-fdNxJRh" frameborder="0" allowfullscreen></iframe>
1717

1818
### React Conf 2018 {#react-conf-2018}
1919

2020
A playlist of videos from React Conf 2018.
21-
<iframe title="React Conf 2018" width="650" height="366" src="https://www.youtube-nocookie.com/embed/videoseries?list=PLPxbbTqCLbGE5AihOSExAa4wUM-P42EIJ" frameborder="0" allowfullscreen></iframe>
21+
<iframe title="React Conf 2018" width="650" height="366" src="https://www.youtube-nocookie.com/embed/playlist?list=PLPxbbTqCLbGE5AihOSExAa4wUM-P42EIJ" frameborder="0" allowfullscreen></iframe>
2222

2323
### React.js Conf 2017 {#reactjs-conf-2017}
2424

content/docs/code-splitting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ console.log(add(16, 26)); // 42
4242
4343
Если вы используете [Create React App](https://create-react-app.dev/), [Next.js](https://github.com/zeit/next.js/), [Gatsby](https://www.gatsbyjs.org/) или похожие инструменты, то у вас уже будет настроенный Webpack для бандлинга приложения.
4444

45-
Иначе, вам нужно будет настроить webpack самостоятельно. Для этого ознакомьтесь со страницами [Установка](https://webpack.js.org/guides/installation/) и [Начало работы](https://webpack.js.org/guides/getting-started/) в документации по Webpack.
45+
Иначе, вам нужно будет настроить webpack самостоятельно. Для этого ознакомьтесь со страницами по [установке](https://webpack.js.org/guides/installation/) и [началу работы](https://webpack.js.org/guides/getting-started/) в документации по Webpack.
4646

4747
## Разделение кода {#code-splitting}
4848

content/docs/concurrent-mode-adoption.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ next: concurrent-mode-reference.html
2020
>На странице описаны **экспериментальные функции, которых еще нет в стабильной версии**. Не используйте экспериментальные сборки React в продакшен-приложениях. Эти функции могут значительно измениться без предупреждения перед тем, как попасть в React.
2121
>
2222
>Эта документация предназначена для ранних пользователей и интересующихся. Если вы новичок в React, не беспокойтесь об этих возможностях -- вам не нужно изучать их прямо сейчас.
23+
24+
>Предупреждение:
25+
>
26+
>"Блокирующий режим" и метод `createBlockingRoot` были объявлены устаревшими, их не стоит использовать.
27+
2328
</div>
2429

2530
- [Установка](#installation)

content/docs/concurrent-mode-reference.md

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ prev: concurrent-mode-adoption.html
2828

2929
- [Включение конкурентного режима](#concurrent-mode)
3030
- [`createRoot`](#createroot)
31-
- [`createBlockingRoot`](#createblockingroot)
3231
- [API задержек](#suspense)
3332
- [`Suspense`](#suspensecomponent)
3433
- [`SuspenseList`](#suspenselist)
@@ -47,18 +46,6 @@ ReactDOM.createRoot(rootNode).render(<App />);
4746

4847
Дополнительную информацию можно узнать в [документации конкурентного режима](/docs/concurrent-mode-intro.html).
4948

50-
### `createBlockingRoot` {#createblockingroot}
51-
52-
```js
53-
ReactDOM.createBlockingRoot(rootNode).render(<App />)
54-
```
55-
56-
Заменяет `ReactDOM.render(<App />, rootNode)` и включает [блокирующий режим](/docs/concurrent-mode-adoption.html#migration-step-blocking-mode).
57-
58-
Для реализации конкурентного режима решено сделать семантические изменения в работе React. Это значит, что вы не сможете использовать конкурентный режим лишь для некоторых компонентов проекта. И как следствие, не все приложения можно будет напрямую перевести на конкурентный режим.
59-
60-
Блокирующий режим содержит небольшую часть возможностей конкурентного режима. Он предназначен в качестве промежуточного этапа для приложений, которые нельзя мигрировать напрямую.
61-
6249
## API задержек {#suspense}
6350

6451
### `Suspense` {#suspensecomponent}

content/docs/hooks-reference.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ function Counter({initialCount}) {
7676
> В отличие от метода `setState`, который вы можете найти в классовых компонентах, `useState` не объединяет объекты обновления автоматически. Вы можете повторить это поведение, комбинируя форму функции обновления с синтаксисом расширения объекта:
7777
>
7878
> ```js
79+
> const [state, setState] = useState({});
7980
> setState(prevState => {
8081
> // Object.assign также будет работать
8182
> return {...prevState, ...updatedValues};

content/docs/optimizing-performance.md

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -156,32 +156,6 @@ module.exports = {
156156

157157
Помните, что это нужно делать только для продакшен-сборки. Вам не стоит использовать `TerserPlugin` в процессе разработки, потому что тогда скроются вспомогательные предупреждения React и замедлится процесс сборки.
158158

159-
## Анализ производительности компонентов с помощью вкладки Chrome «Performance» {#profiling-components-with-the-chrome-performance-tab}
160-
161-
В режиме **разработки** вы можете видеть как компоненты монтируются, обновляются и размонтируются с помощью инструментов производительности в браузерах, которые их поддерживают. Например:
162-
163-
<center><img src="../images/blog/react-perf-chrome-timeline.png" style="max-width:100%" alt="Компоненты React в графике времени Chrome" /></center>
164-
165-
Для того, чтобы сделать это в Chrome:
166-
167-
1. Временно **отключите все расширения Chrome, особенно React DevTools**. Они могут существенно исказить результаты!
168-
169-
2. Убедитесь, что вы запускаете приложение в режиме разработки.
170-
171-
3. Откройте в инструментах разработчика Chrome вкладку **[Performance](https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/timeline-tool)** и нажмите **Record**.
172-
173-
4. Выполните действия, которые вы хотите проанализировать на производительность. Не записывайте более 20 секунд, иначе Chrome может зависнуть.
174-
175-
5. Остановите запись.
176-
177-
6. События React будут сгруппированы под меткой **User Timing**.
178-
179-
Для более детального ознакомления, посмотрите [эту статью от Бена Шварца (Ben Schwarz)](https://calibreapp.com/blog/react-performance-profiling-optimization).
180-
181-
Обратите внимание, что **результаты являются относительными и в продакшене рендеринг компонентов будет быстрее**. Всё же это должно помочь вам понять, когда какой-то пользовательский компонент обновляется по ошибке, а также как глубоко и часто обновляется пользовательский интерфейс.
182-
183-
В настоящее время Chrome, Edge и IE единственные браузеры, которые поддерживают данную возможность, но мы используем стандарт [User Timing API](https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API), поэтому ожидайте, что больше браузеров добавят его поддержку.
184-
185159
## Анализ производительности компонентов с помощью инструмента разработки «Profiler» {#profiling-components-with-the-devtools-profiler}
186160

187161
Пакеты `react-dom` версии 16.5+ и `react-native` версии 0.57+ предоставляют расширенные возможности анализа производительности в режиме разработки с помощью инструментов разработчика React Profiler.
@@ -199,6 +173,11 @@ module.exports = {
199173
> Профилирование продакшен-пакета для `react-dom` также доступно как `react-dom/profiling`.
200174
> Подробнее о том, как использовать этот пакет, читайте на [fb.me/react-profiling](https://fb.me/react-profiling)
201175
176+
> Примечание
177+
>
178+
> До React 17 мы использовали стандартный [User Timing API](https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API) для профилирования компонентов с помощью вкладки Performance браузера Chrome.
179+
> Более подробнее об этом способе можно узнать в [статье Бена Шварца (Ben Schwarz)](https://calibreapp.com/blog/react-performance-profiling-optimization).
180+
202181
## Виртуализация длинных списков {#virtualize-long-lists}
203182

204183
Если ваше приложение рендерит длинные списки данных (сотни или тысячи строк), мы рекомендуем использовать метод известный как "оконный доступ". Этот метод рендерит только небольшое подмножество строк в данный момент времени и может значительно сократить время, необходимое для повторного рендера компонентов, а также количество создаваемых DOM-узлов.

content/images/tutorial/devtools.png

10.7 KB
Loading

0 commit comments

Comments
 (0)