Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
905a113
Add React Rally 2019 (#1840)
BrianMitchL Mar 18, 2019
806da34
Add a DOM measurement recipe to Hooks FAQ (#1843)
gaearon Mar 19, 2019
ac4aa65
Add more explanations to Hooks API page (#1845)
gaearon Mar 19, 2019
b1bc193
Document useContext bailout strategy (#1848)
gaearon Mar 19, 2019
1f2dbb7
Update languages for Simplified Chinese completion (#1854)
tesseralis Mar 20, 2019
aad51f2
merging all conflicts
reactjs-translation-bot Mar 22, 2019
9bfaa3d
[ru.reactjs.org] fix sync conflicts
gcor Mar 23, 2019
11001c0
fix after review
gcor Mar 30, 2019
b5fd7b9
fix after review
gcor Mar 30, 2019
7e502fb
fix after review
gcor Mar 30, 2019
a22c4b5
Merge pull request #286 from gcor/sync-1f2dbb7a
gcor Apr 1, 2019
0f15d66
Update content/docs/hooks-reference.md
gcor Apr 1, 2019
bc33957
Update content/docs/hooks-reference.md
gcor Apr 1, 2019
4ae90f6
Update content/docs/hooks-faq.md
lex111 Apr 2, 2019
c50331e
Update content/docs/hooks-faq.md
lex111 Apr 2, 2019
2d37a5e
Update content/docs/hooks-faq.md
lex111 Apr 2, 2019
ba24f1d
Update content/docs/hooks-reference.md
lex111 Apr 2, 2019
42d54fd
Update content/docs/hooks-reference.md
lex111 Apr 2, 2019
402c0a9
Update content/docs/hooks-reference.md
lex111 Apr 2, 2019
3cf2d73
Update content/docs/hooks-faq.md
lex111 Apr 2, 2019
cfb5e29
Update content/docs/hooks-faq.md
lex111 Apr 2, 2019
6a4edbb
Update content/docs/hooks-reference.md
lex111 Apr 2, 2019
b6c974c
Update content/docs/hooks-reference.md
gcor Apr 2, 2019
3b7df89
Apply suggestions from code review
lex111 Apr 2, 2019
ce39f1d
Update content/docs/hooks-reference.md
gcor Apr 2, 2019
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
Prev Previous commit
Next Next commit
fix after review
  • Loading branch information
gcor committed Mar 30, 2019
commit 11001c0a2b7de3cd4fa5df02dc8e41bc4082458c
4 changes: 2 additions & 2 deletions content/docs/hooks-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ function Example() {

Если вы намеренно хотите считать из асинхронного колбэка *свежайшее* состояние, вы можете сперва сохранить его [в реф](/docs/hooks-faq.html#is-there-something-like-instance-variables), потом изменить его и затем считать его из рефа.

Наконец, возможна другая ситуация, почему вы видите устаревшие пропсы или состояние: когда вы используете оптимизацию с помощью «массива зависимостей», но неправильно указали какие-то зависимости. Например, если эффект передаёт вторым параметром `[]`, но при этом использует `someProp`, то он продолжит «видеть» исходное значение `someProp`. Правильным решением является либо исправление массива, либо отказ от его использования.
Наконец, возможна другая ситуация, почему вы видите устаревшие пропсы или состояние: когда вы используете оптимизацию с помощью «массива зависимостей», но неправильно указали какие-то зависимости. Например, если эффект передаёт вторым параметром `[]`, но при этом использует `someProp`, то он продолжит «видеть» исходное значение `someProp`. Правильным решением является либо исправление массива, либо отказ от его использования.
По этим ссылкам описаны [подходы к функциям](#is-it-safe-to-omit-functions-from-the-list-of-dependencies) в аналогичных ситуациях и [другие известные способы](#what-can-i-do-if-my-effect-dependencies-change-too-often) снижения частоты вызова эффектов, исключающие передачу неправильных зависимостей.

>Примечание
Expand Down Expand Up @@ -456,7 +456,7 @@ function ScrollView({row}) {

### Как я могу измерить узел DOM? {#how-can-i-measure-a-dom-node}

Для измерения положения или размера узла DOM можно использовать [реф-колбек](/docs/refs-and-the-dom.html#callback-refs). React будет вызывать этот колбэк всякий раз, когда ref подключается к другому узлу. Вот [небольшая демонстрация](https://codesandbox.io/s/l7m0v5x4v9):
Для измерения положения или размера узла DOM можно использовать [реф-колбэк](/docs/refs-and-the-dom.html#callback-refs). React будет вызывать этот колбэк всякий раз, когда ref подключается к другому узлу. Вот [небольшая демонстрация](https://codesandbox.io/s/l7m0v5x4v9):

```js{4-8,12}
function MeasureExample() {
Expand Down
9 changes: 5 additions & 4 deletions content/docs/hooks-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,8 @@ const value = useContext(MyContext);
* **Неправильно:** `useContext(MyContext.Consumer)`
* **Неправильно:** `useContext(MyContext.Provider)`

Компонент вызывает `useContext` всегда будет перерендерится при изменении контекста значение. При повторной визуализации компонент стоит дорого, вы можете [оптимизировать его с помощью мемоизации](https://github.com/facebook/react/issues/15156#issuecomment-474590693).

Компонент вызывающий `useContext` всегда будет перерендериваться при изменении значения контекста. Если повторный рендер компонента затратен, вы можете [оптимизировать его с помощью мемоизации](https://github.com/facebook/react/issues/15156#issuecomment-474590693).

>Подсказка
>
Expand Down Expand Up @@ -373,15 +374,15 @@ function TextInputWithFocusButton() {
}
```

По сути, `useRef` - это как «коробка», которая может содержать изменяемое значение в своем `текущем` свойстве.
По сути, `useRef` - это как «коробка», которая может содержать изменяемое значение в своем `.current` свойстве.

Вы можете быть знакомы с рефами в первую очередь как со способом [access the DOM](/docs/refs-and-the-dom.html). Если вы передадите объект рефа для реакции с `<div ref={myRef}/>`, React установит его `.current` текущим для соответствующего узла DOM при каждом изменении этого узла.
Возможно вы знакомы с рефами в первую очередь как со способом [получить доступ к DOM](/docs/refs-and-the-dom.html). Если вы передадите объект рефа для реакции с `<div ref={myRef}/>`, React установит его `.current` текущим для соответствующего узла DOM при каждом изменении этого узла.

Однако `useRef()` полезен не только для атрибута реф. Это [удобно для сохранения любого изменяемого значения](/docs/hooks-faq.html#is-there-something-like-instance-variables) аналогично тому, как вы бы использовали поля экземпляра в классах.

Это работает, потому что `useRef()` создает простой объект JavaScript. Единственное различие между `useRef()` и созданием` {current:...} `сам объект заключается в том, что `useRef` даст вам один и тот же объект реф для каждого рендеринга.

Имейте в виду, что `useRef` *не уведомляет вас, когда изменяется его содержимое. Мутация свойство `.current` не вызывает повторной визуализации. Если вы хотите запустить некоторый код, когда React присоединяет или отсоединяет реф к узлу DOM, вы можете использовать [колбек рефа](/docs/hooks-faq.html#how-can-i-measure-a-dom-node) вместо этого.
Имейте в виду, что `useRef` *не* уведомляет вас, когда изменяется его содержимое. Мутация свойства `.current` не вызывает повторной визуализации. Если вы хотите запустить некоторый код, когда React присоединяет или отсоединяет реф к узлу DOM, вы можете использовать [колбек рефа](/docs/hooks-faq.html#how-can-i-measure-a-dom-node) вместо этого.


### `useImperativeHandle` {#useimperativehandle}
Expand Down