Skip to content

Commit 55d8f19

Browse files
committed
Rewrite complex sentences, again
1 parent d3e74e8 commit 55d8f19

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

content/docs/state-and-lifecycle.md

+17-17
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ next: handling-events.html
1010

1111
На этой странице представлены понятия «состояние» (state) и «жизненный цикл» (lifecycle) React-компонентов. Подробный [справочник API компонентов находится по этой ссылке](/docs/react-component.html).
1212

13-
В качестве примера рассмотрим идущие часы из [предыдущего раздела](/docs/rendering-elements.html#updating-the-rendered-element). В главе [Рендeринг элементов](/docs/rendering-elements.html#rendering-an-element-into-the-dom) мы изучили лишь один способ обновления UIвызвать `ReactDOM.render()` для изменения результата рендера:
13+
В качестве примера рассмотрим идущие часы из [предыдущего раздела](/docs/rendering-elements.html#updating-the-rendered-element). В главе [Рендeринг элементов](/docs/rendering-elements.html#rendering-an-element-into-the-dom) мы научились обновлять UI только одним способомвызовом `ReactDOM.render()`:
1414

1515
```js{8-11}
1616
function tick() {
@@ -31,7 +31,7 @@ setInterval(tick, 1000);
3131

3232
[**Посмотреть на CodePen**](http://codepen.io/gaearon/pen/gwoJZk?editors=0010)
3333

34-
В этой главе мы узнаем, как инкапсулировать и обеспечить многократное использование компонента `Clock`. Компонент самостоятельно создаст свой собственный таймер и будет самообновляться раз в секунду.
34+
В этой главе мы узнаем, как инкапсулировать и обеспечить многократное использование компонента `Clock`. Компонент самостоятельно установит свой собственный таймер и будет обновляться раз в секунду.
3535

3636
Для начала, извлечём компонент, показывающий время:
3737

@@ -70,7 +70,7 @@ ReactDOM.render(
7070

7171
Для этого добавим так называемое «состояние» (state) в компонент `Clock`.
7272

73-
«Состояние» очень похоже на уже знакомые нам пропсы (props), отличие в том, что состояние контролируется и доступно только конкретному компоненту.
73+
«Состояние» очень похоже на уже знакомые нам пропсы, отличие в том, что состояние контролируется и доступно только конкретному компоненту.
7474

7575
Мы [уже упоминали](/docs/components-and-props.html#functional-and-class-components), что классовые компоненты обладают дополнительными способностями. Локальное «состояние» — одна из таких способностей, которое доступно только классовым компнентам.
7676

@@ -197,17 +197,17 @@ ReactDOM.render(
197197

198198
[**Посмотреть на CodePen**](http://codepen.io/gaearon/pen/KgQpJd?editors=0010)
199199

200-
Теперь осталось только создать собственный таймер внутри `Clock` и обновлять компонент каждую секунду.
200+
Теперь осталось только установить собственный таймер внутри `Clock` и обновлять компонент каждую секунду.
201201

202202
## Добавим методы жизненного цикла в класс {#adding-lifecycle-methods-to-a-class}
203203

204204
В приложениях с множеством компонентов очень важно освобождать используемые системные ресурсы когда компоненты удаляются.
205205

206-
Первоначальный рендеринг компонента в DOM называется «монтирование» (установка). Нам нужно [создавать таймер](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval) всякий раз, когда это происходит.
206+
Первоначальный рендеринг компонента в DOM называется «монтирование» (установка). Нам нужно [устанавливать таймер](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval) всякий раз, когда это происходит.
207207

208-
Каждый раз когда DOM-узел, созданный компонентом, удаляется, просходит то, что мы называем «размонтирование». Учитывая важность сохранения ресурсов, мы будем [сбрасывать таймер](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval) при каждой «размонтировке».
208+
Каждый раз когда DOM-узел, созданный компонентом, удаляется, просходит то, что мы называем «размонтирование». Учитывая важность сохранения ресурсов, мы будем [сбрасывать таймер](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval) при каждом «размонтировании».
209209

210-
Объявим специальные методы, которые компонент будет вызывать при монтировнии и размонтировании:
210+
Объявим специальные методы, которые компонент будет вызывать при монтировании и размонтировании:
211211

212212
```js{7-9,11-13}
213213
class Clock extends React.Component {
@@ -237,7 +237,7 @@ class Clock extends React.Component {
237237

238238
Эти методы называются «методами жизненного цикла» (lifecycle methods).
239239

240-
Метод `componentDidMount()` запускается после того, как компонент отрендерился в DOM — здесь мы и создадим таймер:
240+
Метод `componentDidMount()` запускается после того, как компонент отрендерился в DOM — здесь мы и установим таймер:
241241

242242
```js{2-5}
243243
componentDidMount() {
@@ -252,7 +252,7 @@ class Clock extends React.Component {
252252

253253
В классовых компонентах у полей `this.props` и `this.state` особое назначение, более того, React сам создает `this.props`. Вы можете вручную добавить новые поля (например, ID таймера), если нужно сохранить дополнительную информацию о классе.
254254

255-
Удалим таймер в методе жизненного цикла `componentWillUnmount()`:
255+
Теперь нам осталось сбросить таймер в методе жизненного цикла `componentWillUnmount()`:
256256

257257
```js{2}
258258
componentWillUnmount() {
@@ -308,17 +308,17 @@ ReactDOM.render(
308308

309309
Теперь часы обновляются каждую секунду.
310310

311-
Давайте рассмотрим наше решение и разберем порядок, в котором вызываются методы:
311+
Давайте рассмотрим наше решение и разберём порядок, в котором вызываются методы:
312312

313313
1) Когда мы передаём `<Clock />` в `ReactDOM.render()`, React вызывает конструктор компонента. `Clock` должен отображать текущее время, поэтому мы задаем начальное состояние `this.state` объектом с текущим временем.
314314

315-
2) React вызывает метод `render()` компонента `Clock`. Таким образом React узнаёт, что отобразить на экране. Далее, React обновляет DOM так, чтобы он соответствовал выводу ренедера `Clock`.
315+
2) React вызывает метод `render()` компонента `Clock`. Таким образом React узнаёт, что отобразить на экране. Далее, React обновляет DOM так, чтобы он соответствовал выводу рендера `Clock`.
316316

317-
3) Как только вывод рендера `Clock` вставлен в DOM, React вызывает метод жизненного цикла `componentDidMount()`. Внутри него компонент `Clock` указывает браузеру создать таймер, который будет вызывать `tick()` раз в секунду.
317+
3) Как только вывод рендера `Clock` вставлен в DOM, React вызывает метод жизненного цикла `componentDidMount()`. Внутри него компонент `Clock` указывает браузеру установить таймер, который будет вызывать `tick()` раз в секунду.
318318

319-
4) Таймер вызывает метод `tick()` ежесекундно. Часть метода — вызов `setState()` с объектом текущего времени — таким образом компонент `Clock` планирует обновление UI. Благодаря вызову `setState()` React знает, что состояние изменилось, и снова вызывает метод `render()`, чтобы узнать, что должно отображаться на экране. На этот раз `this.state.date` в методе `render()` будет другим, рендер компонента будет включать обновлённое время и React обновит DOM соответственно.
319+
4) Таймер вызывает `tick()` ежесекундно. Внутри `tick()` мы меняем состояние посредством вызова `setState()` с текущим временем. React реагирует на изменение состояния и снова запускает `render()`. На этот раз `this.state.date` в методе `render()` содержит новое значение, поэтому React заменит DOM. Таким образом компонент `Clock` каждую секунду обновляет UI.
320320

321-
5) Если компонент `Clock` когда-либо удаляется из DOM, React вызывает метод жизненного цикла `componentWillUnmount()`, таким образом таймер будет остановлен и удален.
321+
5) Если компонент `Clock` когда-либо удалится из DOM, React вызовет метод жизненного цикла `componentWillUnmount()` и сбросит таймер.
322322

323323
## Как правильно использовать состояние {#using-state-correctly}
324324

@@ -415,7 +415,7 @@ this.setState(function(state, props) {
415415

416416
## Однонаправленный поток данных {#the-data-flows-down}
417417

418-
В иерархии компонентов, ни родительский, ни дочерние компоненты не знают задано ли состояние другого компонента. Также не важно, как был создан определенный компонент — с помощью функции или класса.
418+
В иерархии компонентов, ни родительский, ни дочерние компоненты не знают, задано ли состояние другого компонента. Также не важно, как был создан определенный компонент — с помощью функции или класса.
419419

420420
Состояние часто называют «локальным», «внутренним» или инкапсулированным. Оно доступно только для самого компонента и скрыто от других.
421421

@@ -425,13 +425,13 @@ this.setState(function(state, props) {
425425
<h2>Сейчас {this.state.date.toLocaleTimeString()}.</h2>
426426
```
427427

428-
Это также верно для пользовательских компонентов:
428+
Своё состояние можно передать и другому пользовательскому компоненту:
429429

430430
```js
431431
<FormattedDate date={this.state.date} />
432432
```
433433

434-
Компонент `FormattedDate` получает `date` через пропсы но не знает, является ли первоисточником состояние `Clock`, пропс `Clock` или оно было передано напрямую:
434+
Компонент `FormattedDate` получает `date` через пропсы но не знает, является ли первоисточником состояние `Clock`, пропсы `Clock` или оно было передано напрямую:
435435

436436
```js
437437
function FormattedDate(props) {

0 commit comments

Comments
 (0)