Skip to content

Commit

Permalink
docs(en): merge reactjs.org into zh-hans (reactjs#219)
Browse files Browse the repository at this point in the history
Sync with reactjs.org @ b91049c
  • Loading branch information
QC-L authored May 13, 2019
2 parents 0b17562 + 533b1f0 commit 4745462
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
2 changes: 1 addition & 1 deletion content/docs/hooks-effect.md
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ useEffect(() => {
>
>如果你要使用此优化方式,请确保数组中包含了**所有外部作用域中会随时间变化并且在 effect 中使用的变量**,否则你的代码会引用到先前渲染中的旧变量。参阅文档,了解更多关于[如何处理函数](/docs/hooks-faq.html#is-it-safe-to-omit-functions-from-the-list-of-dependencies)以及[数组频繁变化时的措施](/docs/hooks-faq.html#what-can-i-do-if-my-effect-dependencies-change-too-often)内容。
>
>如果想执行只运行一次的 effect(仅在组件挂载和卸载时执行),可以传递一个空数组(`[]`)作为第二个参数。这就告诉 React 你的 effect 不依赖于 props 或 state 中的任何值,所以它永远都不需要重复执行。这并不属于特殊情况 —— 它依然遵循输入数组的工作方式
>如果想执行只运行一次的 effect(仅在组件挂载和卸载时执行),可以传递一个空数组(`[]`)作为第二个参数。这就告诉 React 你的 effect 不依赖于 props 或 state 中的任何值,所以它永远都不需要重复执行。这并不属于特殊情况 —— 它依然遵循依赖数组的工作方式
>
>如果你传入了一个空数组(`[]`),effect 内部的 props 和 state 就会一直拥有其初始值。尽管传入 `[]` 作为第二个参数更接近大家更熟悉的 `componentDidMount``componentWillUnmount` 思维模式,但我们有[更好的](/docs/hooks-faq.html#is-it-safe-to-omit-functions-from-the-list-of-dependencies)[方式](/docs/hooks-faq.html#what-can-i-do-if-my-effect-dependencies-change-too-often)来避免过于频繁的重复调用 effect。除此之外,请记得 React 会等待浏览器完成画面渲染之后才会延迟调用 `useEffect`,因此会使得额外操作很方便。
>
Expand Down
4 changes: 2 additions & 2 deletions content/docs/hooks-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ const Button = React.memo((props) => {
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
```

这行代码会调用 `computeExpensiveValue(a, b)`但如果输入值 `[a, b]` 自上次值以来没有改变过`useMemo` 会跳过二次调用,只是简单复用它上一次返回的值。
这行代码会调用 `computeExpensiveValue(a, b)`但如果依赖数组 `[a, b]` 自上次赋值以来没有改变过`useMemo` 会跳过二次调用,只是简单复用它上一次返回的值。

记住,传给 `useMemo` 的函数是在渲染期间运行的。不要在其中做任何你通常不会在渲染期间做的事。举个例子,副作用属于 `useEffect`,而不是 `useMemo`

Expand All @@ -766,7 +766,7 @@ function Parent({ a, b }) {

### 如何惰性创建昂贵的对象? {#how-to-create-expensive-objects-lazily}

如果输入的内容相同`useMemo` 允许你 [记住一次昂贵的计算](#how-to-memoize-calculations)。但是,这仅作为一种提示,并不 *保证* 计算不会重新运行。但有时候需要确保一个对象仅被创建一次。
如果依赖数组的值相同`useMemo` 允许你 [记住一次昂贵的计算](#how-to-memoize-calculations)。但是,这仅作为一种提示,并不 *保证* 计算不会重新运行。但有时候需要确保一个对象仅被创建一次。

**第一个常见的使用场景是当创建初始 state 很昂贵时:**

Expand Down

0 comments on commit 4745462

Please sign in to comment.