Skip to content

Commit

Permalink
Fixes and improvements 🧐
Browse files Browse the repository at this point in the history
  • Loading branch information
lex111 committed Mar 4, 2019
1 parent a4b600a commit 771dc46
Show file tree
Hide file tree
Showing 13 changed files with 37 additions and 37 deletions.
2 changes: 1 addition & 1 deletion content/docs/error-boundaries.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ class MyComponent extends React.Component {
if (this.state.error) {
return <h1>Отловил ошибку.</h1>
}
return <div onClick={this.handleClick}>Кликни меня</div>
return <div onClick={this.handleClick}>Нажми на меня</div>
}
}
```
Expand Down
4 changes: 2 additions & 2 deletions content/docs/faq-ajax.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ category: FAQ
```
{
"items": [
{ "id": 1, "name": "Apples", "price": "$2" },
{ "id": 2, "name": "Peaches", "price": "$5" }
{ "id": 1, "name": "Яблоки", "price": "$2" },
{ "id": 2, "name": "Персики", "price": "$5" }
]
}
```
Expand Down
24 changes: 12 additions & 12 deletions content/docs/fragments.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,22 @@ class Columns extends React.Component {
render() {
return (
<div>
<td>Hello</td>
<td>World</td>
<td>Привет</td>
<td>Мир</td>
</div>
);
}
}
```

результатом вывода `<Table />` будет:
Результатом вывода `<Table />` будет:

```jsx
<table>
<tr>
<div>
<td>Hello</td>
<td>World</td>
<td>Привет</td>
<td>Мир</td>
</div>
</tr>
</table>
Expand All @@ -75,21 +75,21 @@ class Columns extends React.Component {
render() {
return (
<React.Fragment>
<td>Hello</td>
<td>World</td>
<td>Привет</td>
<td>Мир</td>
</React.Fragment>
);
}
}
```

результатом будет правильный вывод `<Table />`:
Результатом будет правильный вывод `<Table />`:

```jsx
<table>
<tr>
<td>Hello</td>
<td>World</td>
<td>Привет</td>
<td>Мир</td>
</tr>
</table>
```
Expand All @@ -103,8 +103,8 @@ class Columns extends React.Component {
render() {
return (
<>
<td>Hello</td>
<td>World</td>
<td>Привет</td>
<td>Мир</td>
</>
);
}
Expand Down
8 changes: 4 additions & 4 deletions content/docs/handling-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ redirect_from:

```html
<a href="#" onclick="console.log('По ссылке кликнули.'); return false">
Кликни меня
Нажми на меня
</a>
```

Expand All @@ -48,7 +48,7 @@ function ActionLink() {
return (
<a href="#" onClick={handleClick}>
Кликни меня
Нажми на меня
</a>
);
}
Expand Down Expand Up @@ -110,7 +110,7 @@ class LoggingButton extends React.Component {
render() {
return (
<button onClick={this.handleClick}>
Кликни по мне
Нажми на меня
</button>
);
}
Expand All @@ -131,7 +131,7 @@ class LoggingButton extends React.Component {
// Такой синтаксис гарантирует, что `this` привязан к handleClick.
return (
<button onClick={(e) => this.handleClick(e)}>
Кликни по мне
Нажми на меня
</button>
);
}
Expand Down
4 changes: 2 additions & 2 deletions content/docs/higher-order-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ function withSubscription(WrappedComponent, selectData) {
}

componentDidMount() {
// ...который подписывется на оповещения...
// ...который подписывается на оповещения...
DataSource.addChangeListener(this.handleChange);
}

Expand Down Expand Up @@ -390,6 +390,6 @@ import MyComponent, { someFunction } from './MyComponent.js';

### Рефы не передаются {#refs-arent-passed-through}

По соглашению компоненты высшего порядка передают оборачеваемому компоненту все пропсы, кроме рефов. `ref` на самом деле не проп, как, например, `key`, и поэтому иначе обрабатывается React. Реф элемента, созданного компонентом из HOC, будет указывать на экземпляр ближайшего в иерархии контейнера, а не на оборачиваемый компонент.
По соглашению компоненты высшего порядка передают оборачиваемому компоненту все пропсы, кроме рефов. `ref` на самом деле не проп, как, например, `key`, и поэтому иначе обрабатывается React. Реф элемента, созданного компонентом из HOC, будет указывать на экземпляр ближайшего в иерархии контейнера, а не на оборачиваемый компонент.

Вы можете решить эту проблему с помощью API-метода `React.forwardRef` (добавлен в React 16.3). [Узнать подробнее в главе Перенаправление рефов](/docs/forwarding-refs.html).
2 changes: 1 addition & 1 deletion content/docs/hooks-effect.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ function FriendStatus(props) {
>Совет
>
>Нам не нужно возвращать именнованую функцию из эффекта. Мы назвали её «сбросом», чтобы объяснить её предназначение. Вы можете по желанию возвратить стрелочную функцию или назвать её как-то по другому.
>Нам не нужно возвращать именованную функцию из эффекта. Мы назвали её «сбросом», чтобы объяснить её предназначение. Вы можете по желанию возвратить стрелочную функцию или назвать её как-то по-другому.
## Итог {#recap}
Expand Down
10 changes: 5 additions & 5 deletions content/docs/hooks-state.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function Example() {
<div>
<p>Вы кликнули {count} раз(а)</p>
<button onClick={() => setCount(count + 1)}>
Кликни по мне
Нажми на меня
</button>
</div>
);
Expand All @@ -48,7 +48,7 @@ class Example extends React.Component {
<div>
<p>Вы кликнули {this.state.count} раз(а)</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Кликни по мне
Нажми на меня
</button>
</div>
);
Expand Down Expand Up @@ -175,15 +175,15 @@ function Example() {

```js{1}
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Кликни по мне
Нажми на меня
</button>
```

В функции нам не нужен `this`, потому что `setCount` и `count` уже доступны как переменные:

```js{1}
<button onClick={() => setCount(count + 1)}>
Кликни по мне
Нажми на меня
</button>
```

Expand All @@ -205,7 +205,7 @@ function Example() {
7: <div>
8: <p>Вы кликнули {count} раз(а)</p>
9: <button onClick={() => setCount(count + 1)}>
10: Кликни по мне
10: Нажми на меня
11: </button>
12: </div>
13: );
Expand Down
2 changes: 1 addition & 1 deletion content/docs/introducing-jsx.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ const element = (
const element = React.createElement(
'h1',
{className: 'greeting'},
'Hello, world!'
'Привет, мир!'
);
```

Expand Down
4 changes: 2 additions & 2 deletions content/docs/reference-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ boolean shiftKey
number which
```

Свойство `key` может содержать любое из документированных значений в [спефицикации событий DOM третьего уровня](https://www.w3.org/TR/uievents-key/#named-key-attribute-values).
Свойство `key` может содержать любое из документированных значений в [спецификации событий DOM третьего уровня](https://www.w3.org/TR/uievents-key/#named-key-attribute-values).

* * *

Expand Down Expand Up @@ -229,7 +229,7 @@ onLostPointerCapture onPointerEnter onPointerLeave onPointerOver onPointerOut

Свойства:

По определению из [спефицикации W3](https://www.w3.org/TR/pointerevents/), события курсора наследуют [события мыши](#mouse-events) со следующими свойствами:
По определению из [спецификации W3](https://www.w3.org/TR/pointerevents/), события курсора наследуют [события мыши](#mouse-events) со следующими свойствами:

```javascript
number pointerId
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
<h1>Hello, world!</h1>,
<h1>Привет, мир!</h1>,
document.getElementById('root')
);
```
Expand Down
4 changes: 2 additions & 2 deletions content/docs/reference-react-dom.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,13 @@ ReactDOM.unmountComponentAtNode(container)
```javascript
ReactDOM.findDOMNode(component)
```
Если этот компонент был смотирован в DOM, он возвращает соответствующий DOM элемент браузера. Этот метод полезен для чтения напрямую из DOM (например, чтение значений полей формы) или произведения измерений DOM. **В большинстве случаев, вы можете присоеденить реф к узлу DOM и полностью избежать использования `findDOMNode`.**
Если этот компонент был смотирован в DOM, он возвращает соответствующий DOM элемент браузера. Этот метод полезен для чтения напрямую из DOM (например, чтение значений полей формы) или произведения измерений DOM. **В большинстве случаев, вы можете присоединить реф к узлу DOM и полностью избежать использования `findDOMNode`.**

Когда компонент рендерится в `null` или `false`, `findDOMNode` возвращает `null`. Когда компонент рендерится в строку, `findDOMNode` возвращает текстовый узел DOM, содержащий это значение. Начиная с React 16, компонент может возвращать фрагмент с несколькими дочерними элементами, и в этом случае `findDOMNode` возвращает DOM-узел, соответствующий первому непустому дочернему элементу.

> Примечание:
>
> `findDOMNode` работает только с смотированными компонентами (то есть компонентами, которые были размещены в DOM). Если вы попытаетесь вызвать этот метод для компонента, который ещё не был смонтирован (например, вызовете `findDOMNode()` в методе `render()` для компонента, который ещё не был создан), будет сгенерировано исключение.
> `findDOMNode` работает только с смонтированными компонентами (то есть компонентами, которые были размещены в DOM). Если вы попытаетесь вызвать этот метод для компонента, который ещё не был смонтирован (например, вызовете `findDOMNode()` в методе `render()` для компонента, который ещё не был создан), будет сгенерировано исключение.
>
> `findDOMNode` не может быть использован с функциональными компонентами.
Expand Down
4 changes: 2 additions & 2 deletions content/docs/reference-react.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ const MyComponent = React.memo(function MyComponent(props) {

`React.memo` — это [компонент высшего порядка](/docs/higher-order-components.html). Он похож на [`React.PureComponent`](#reactpurecomponent), но предназначен для функциональных компонентов.

Если ваш функциональный компонент всегда рендерит одинаковый результат для одих и тех же пропсов, вы можете обернуть его в вызов `React.memo` для повышения производительности в некоторых случаях, мемоизируя результат. Это значит, что React будет использовать результат последнего рендера, избегая повторного рендеринга.
Если ваш функциональный компонент всегда рендерит одинаковый результат для одних и тех же пропсов, вы можете обернуть его в вызов `React.memo` для повышения производительности в некоторых случаях, мемоизируя результат. Это значит, что React будет использовать результат последнего рендера, избегая повторного рендеринга.

По умолчанию он поверхностно сравнивает вложенные объекты в объекте `props`. Если вы хотите контролировать сравнение, вы можете предать свою функцию сравнения в качестве второго аргумента.

Expand Down Expand Up @@ -351,7 +351,7 @@ function MyComponent() {
}
```

Это задокументировано в нашем руководстве по [разделению кода](/docs/code-splitting.html#reactlazy). Обратите внимание, что `lazy` компоненты могут быть глубоко внутри дерева `Suspense` -- не нужно оборачивать каждый из них. Считается хорошей практикой использовать `<Suspense>` для индикции загрузки, а `lazy()` -- для разделения кода.
Это задокументировано в нашем руководстве по [разделению кода](/docs/code-splitting.html#reactlazy). Обратите внимание, что `lazy` компоненты могут быть глубоко внутри дерева `Suspense` -- не нужно оборачивать каждый из них. Считается хорошей практикой использовать `<Suspense>` для индикации загрузки, а `lazy()` -- для разделения кода.

Хотя это не поддерживается сегодня, в будущем мы планируем позволить `Suspense` обрабатывать больше сценариев, таких как получение данных от API. Вы можете прочитать об этом в [нашей дорожной карте](/blog/2018/11/27/react-16-roadmap.html).

Expand Down
4 changes: 2 additions & 2 deletions content/docs/state-and-lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ class Clock extends React.Component {
}
```

Классовые компоненты всегда должны вызывать базовый конструктор с агрументом `props`.
Классовые компоненты всегда должны вызывать базовый конструктор с аргументом `props`.

3) Удалим проп `date` из элемента `<Clock />`:

Expand Down Expand Up @@ -205,7 +205,7 @@ ReactDOM.render(

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

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

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

Expand Down

0 comments on commit 771dc46

Please sign in to comment.