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/learn/understanding-your-ui-as-a-tree.md
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ title: Представление UI в виде дерева
6
6
7
7
Ваше приложение React формируется с множеством вложенных друг в друга компонентов. Как же React отслеживает структуру компонентов вашего приложения?
8
8
9
-
React, как и многие другие библиотеки, моделируют UI в виде дерева. Представив ваше приложении в виде дерева, вы сможете лучше понять взаимосвязь между компонентами, а так же это поможет вам в отладке будущих концепций, таких как: производительность и управление состоянием.
9
+
React, как и многие другие библиотеки, моделирует UI в виде дерева. Представив ваше приложение в виде дерева, вы сможете лучше понять взаимосвязь между компонентами, а так же это поможет вам в отладке будущих концепций, таких как: производительность и управление состоянием.
10
10
11
11
</Intro>
12
12
@@ -20,20 +20,20 @@ React, как и многие другие библиотеки, моделир
20
20
21
21
## UI в виде дерева {/*your-ui-as-a-tree*/}
22
22
23
-
Дерево — это модель отношений между элементами и UI часто использует эту структуру. Например, браузеры используют тот же подход для построения HTML ([DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model/Introduction)) и CSS ([CSSOM](https://developer.mozilla.org/docs/Web/API/CSS_Object_Model)). Мобильные платформы так же используют структуру дерева для своей иерархии.
23
+
Дерево — это модель отношений между элементами, и UI часто использует эту структуру. Например, браузеры используют тот же подход для построения HTML ([DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model/Introduction)) и CSS ([CSSOM](https://developer.mozilla.org/docs/Web/API/CSS_Object_Model)). Мобильные платформы так же используют структуру дерева для своей иерархии.
24
24
25
25
<Diagramname="preserving_state_dom_tree"height={193}width={864}alt="Diagram with three sections arranged horizontally. In the first section, there are three rectangles stacked vertically, with labels 'Component A', 'Component B', and 'Component C'. Transitioning to the next pane is an arrow with the React logo on top labeled 'React'. The middle section contains a tree of components, with the root labeled 'A' and two children labeled 'B' and 'C'. The next section is again transitioned using an arrow with the React logo on top labeled 'React'. The third and final section is a wireframe of a browser, containing a tree of 8 nodes, which has only a subset highlighted (indicating the subtree from the middle section).">
26
26
27
-
React создает UIдерево из ваших компонентов. В этом случае дерево UI используется для последующего рендеринга в DOM.
27
+
React создаёт UI-дерево из ваших компонентов. В этом случае дерево UI используется для последующего рендеринга в DOM.
28
28
</Diagram>
29
29
30
-
React, так же как браузеры и мобильные платформы, использует структуру дерева для управления и построения связи между компонентами. Эти деревья являются полезным инструментом и помогут вам понять как данные проходят через приложение React и как оптимизировать рендеринг и размер приложения.
30
+
React, так же как браузеры и мобильные платформы, использует структуру дерева для управления и построения связи между компонентами. Эти деревья являются полезным инструментом и помогут вам понять как данные проходят через приложение React, как оптимизировать рендеринг и размер приложения.
31
31
32
32
## Дерево рендеринга {/*the-render-tree*/}
33
33
34
34
Основной особенностью компонентов считается возможность составлять одни компоненты из других. Когда мы [вкладываем компоненты](/learn/your-first-component#nesting-and-organizing-components), у нас есть концепция родительских и дочерних компонентов, где каждый родительский компонент сам может быть дочерним по отношению к другому.
35
35
36
-
Когда мы рендерим Reactприложение, мы можем смоделировать эти связи в виде дерева, известного как дерево рендеринга.
36
+
Когда мы рендерим React-приложение, мы можем смоделировать эти связи в виде дерева, известного как дерево рендеринга.
37
37
38
38
Вот пример приложения React, которое отображает вдохновляющие цитаты.
39
39
@@ -120,7 +120,7 @@ export default [
120
120
121
121
<Diagramname="render_tree"height={250}width={500}alt="Tree graph with five nodes. Each node represents a component. The root of the tree is App, with two arrows extending from it to 'InspirationGenerator' and 'FancyText'. The arrows are labelled with the word 'renders'. 'InspirationGenerator' node also has two arrows pointing to nodes 'FancyText' and 'Copyright'.">
122
122
123
-
React создает *дерево рендеринга* и UIдерево состоящих из компонентов прошедших рендеринг.
123
+
React создает *дерево рендеринга* и UI-дерево, состоящее из компонентов, прошедших рендеринг.
124
124
125
125
126
126
</Diagram>
@@ -129,17 +129,17 @@ React создает *дерево рендеринга* и UI дерево со
129
129
130
130
Дерево состоит из узлов, каждый из них представляет компонент. `App`, `FancyText`, `Copyright` и многие другие — это узлы нашего дерева.
131
131
132
-
Корневой узел в дереве рендеринга React является [корневым компонентом](/learn/importing-and-exporting-components#the-root-component-file) приложения. В нашем случае корневой компонент предстовляет`App` и React рендерит его первым. Каждое ответление в дереве идет от родительского компонента к дочернему.
132
+
Корневой узел в дереве рендеринга React является [корневым компонентом](/learn/importing-and-exporting-components#the-root-component-file) приложения. В нашем случае корневой компонент предстовлен`App`, и React рендерит его первым. Каждое ответление в дереве идёт от родительского компонента к дочернему.
133
133
134
134
<DeepDive>
135
135
136
136
#### Где же находятся HTML-теги в дереве рендеринга? {/*where-are-the-html-elements-in-the-render-tree*/}
137
137
138
138
Возможно, вы уже заметили, что в приведенном выше дереве рендеринга нет упоминания о HTML-тегах, которые отображает каждый компонент. Это происходит потому, что дерево рендеринга состоит только из [компонентов](learn/your-first-component#components-ui-building-blocks) React.
139
139
140
-
Как фреймворк UI, React является платформо-независимым. Здесь же мы демонстрируем примеры рендеринга в web, где в качестве примитивов UI используется разметка HTML. Но приложение React так же может запускаться на мобильных или десктоп платформах, которые используют другие UIпримитивы, такие как: [UIView](https://developer.apple.com/documentation/uikit/uiview) или [FrameworkElement](https://learn.microsoft.com/en-us/dotnet/api/system.windows.frameworkelement?view=windowsdesktop-7.0).
140
+
Как UI-фреймворк, React является платформонезависимым. В документации мы демонстрируем примеры рендеринга в web, где в качестве примитивов UI используется разметка HTML. Но приложение React так же может запускаться на мобильных или десктоп платформах, которые используют другие UI-примитивы, такие как: [UIView](https://developer.apple.com/documentation/uikit/uiview) или [FrameworkElement](https://learn.microsoft.com/en-us/dotnet/api/system.windows.frameworkelement?view=windowsdesktop-7.0).
141
141
142
-
Но примитивы на этих платформах не являются частью React и его дерево так же может давать представление о нашем приложении независимо от того, на какой платформе запускается ваше приложение.
142
+
Но примитивы на этих платформах не являются частью React. Его дерево может давать представление о вашем приложении независимо от того, на какой платформе запускается ваше приложение.
143
143
144
144
</DeepDive>
145
145
@@ -281,13 +281,13 @@ export default [
281
281
282
282
Дерево зависимостей помогает определить какие модули необходимы для запуска вашего React приложения. При создании приложения для продакшена есть этап сборки, на котором весь необходимый JavaScript будет отправлен клиенту. На этом этапе [сборщик пакетов](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview#the_modern_tooling_ecosystem) использует дерево зависимостей для того, чтобы определить какие модули содержит проект.
283
283
284
-
По мере роста вашего приложения часто увеличивается и размер сборщика. При больших размерах требуются больше затрат для загрузки и запуска клиента, а так же это может задерживать прорисовку вашего UI. Понимание же дерева зависимостей вашего приложения может помочь в отладке и устранении этих проблем.
284
+
По мере роста вашего приложения часто увеличивается и размер сборщика. При больших размерах требуется больше затрат для загрузки и запуска клиента, а так же это может задерживать прорисовку вашего UI. Понимание же дерева зависимостей вашего приложения может помочь в отладке и устранении этих проблем.
285
285
286
286
[comment]: <>(perhaps we should also deep dive on conditional imports)
287
287
288
288
<Recap>
289
289
290
-
* Деревья — это распространенный способ показать отношение между сущностями. Они очень частно используются для построения UI.
290
+
* Деревья — это распространенный способ показать отношения между сущностями. Они очень частно используются для построения UI.
291
291
* Деревья рендеринга представляют собой отношения между вложенными компонентами React в рамках одной отрисовки.
292
292
* С отрисоквой по условию, дерево рендеринга может меняться при разных запусках. В зависимости от пропсов, компоненты могут отображать разные дочерние компоненты.
293
293
* Деревья рендеринга помогают определить, что такое компоненты верхнего уровня и конечные компоненты. Компоненты верхнего уровня влияют на производительность отрисовки всех компонентов, находящихся под ними, а конечные компоненты часто перерисовываются повторно. Их выявление поможет вам для понимания и отладки производительности рендеринга.
0 commit comments