Skip to content

Мелкие правки (рендеринг элементов) #77

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 10, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions content/docs/rendering-elements.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ const element = <h1>Hello, world</h1>;
<div id="root"></div>
```

Мы назовём его "корневым" узлом DOM, так как всё, что находится в нём, будет управляться React DOM.
Мы назовём его «корневым» узлом DOM, так как React DOM будет управлять его содержимым.

Обычно в приложениях, написанных полностью на React, есть только один корневой элемент. При встраивании React в существующее приложение вы можете создать столько независимых корневых элементов, сколько посчитаете нужным.
Обычно в приложениях, написанных полностью на React, есть только один корневой элемент. При встраивании React в существующее приложение вы можете рендерить в столько независимых корневых элементов, сколько посчитаете нужным.

Для рендеринга React-элемента в корневом узле DOM вызовите `ReactDOM.render()` с React-элементом и корневым DOM узлом в качестве аргументов:
Для рендеринга React-элемента в корневой узел DOM, вызовите `ReactDOM.render()` с React-элементом и корневым DOM узлом в качестве аргументов:

`embed:rendering-elements/render-an-element.js`

Expand All @@ -54,22 +54,22 @@ const element = <h1>Hello, world</h1>;

[](codepen://rendering-elements/update-rendered-element)

В этом примере `ReactDOM.render()` вызывается каждую секунду с помощью колбэка [`setInterval()`](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval)
В этом примере `ReactDOM.render()` вызывается каждую секунду с помощью колбэка [`setInterval()`](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval).

>**Примечание:**
>
>На практике большинство React-приложений вызывают `ReactDOM.render()` только один раз. В следующем разделе вы узнаете как можно обновлять интерфейс при помощи [компонента с состоянием](/docs/state-and-lifecycle.html).
>На практике большинство React-приложений вызывают `ReactDOM.render()` только один раз. В следующем разделе вы узнаете, как можно обновлять интерфейс при помощи [компонента с состоянием](/docs/state-and-lifecycle.html).
>
>Мы рекомендуем не пропускать разделы, поскольку в них используется информация из предыдущих разделов.
>Мы рекомендуем не пропускать главы, поскольку каждая следующая глава опирается на знания из предыдущей.

## React обновляет только то, что необходимо {#react-only-updates-whats-necessary}

React DOM сравнивает элемент и его потомков с предыдущей версией и вносит в DOM только те изменения, которые необходимы, чтобы на странице оказался новый элемент.
React DOM сравнивает элемент и его дочернее дерево с предыдущей версией и вносит в DOM только минимально необходимые изменения.

Вы можете убедиться в этом на [последнем примере](codepen://rendering-elements/update-rendered-element) с помощью инструментов разработчика в браузере:
Вы можете убедиться в этом на [последнем примере](codepen://rendering-elements/update-rendered-element) с помощью инструментов разработки в браузере:

![В DOM видно частичное обновление](../images/docs/granular-dom-updates.gif)

Несмотря на то, что мы создаем элемент, описывающий все UI-дерево, каждую секунду React DOM изменяет только текстовый узел, содержимое которого изменилось.
Несмотря на то, что мы создаем элемент, описывающий всё UI-дерево, каждую секунду React DOM изменяет только текстовый узел, содержимое которого изменилось.

Проще описать, как интерфейс выглядит в конкретный момент, чем как он изменяется с течением времени. По нашему опыту, такой подход позволяет избавиться от целого класса ошибок.
Проще описать, как интерфейс выглядит в конкретный момент, чем как он изменяется с течением времени. По нашему опыту, такой подход позволяет избавиться от целого класса ошибок.