@@ -33,7 +33,7 @@ title: <Profiler>
33
33
#### 参数 {/* props* /}
34
34
35
35
* ` id ` :字符串,用于标识正在测量的 UI 部分。
36
- * ` onRender ` :[ ` onRender ` 回调函数] ( #onrender-callback ) ,当 profiled 树中的组件更新时 ,React 都会调用它。它接收有关渲染内容和所花费时间的信息。
36
+ * ` onRender ` :[ ` onRender ` 回调函数] ( #onrender-callback ) ,当包裹的组件树更新时 ,React 都会调用它。它接收有关渲染内容和所花费时间的信息。
37
37
38
38
#### 注意 {/* caveats* /}
39
39
@@ -43,7 +43,7 @@ title: <Profiler>
43
43
44
44
### ` onRender ` 回调函数 {/* onrender-callback* /}
45
45
46
- React 会使用渲染的相关信息调用你的 ` onRender ` 回调函数 。
46
+ 当调用 ` onRender ` 回调函数时,React 会告诉你相关信息 。
47
47
48
48
``` js
49
49
function onRender (id , phase , actualDuration , baseDuration , startTime , commitTime ) {
@@ -53,12 +53,12 @@ function onRender(id, phase, actualDuration, baseDuration, startTime, commitTime
53
53
54
54
#### 参数 {/* onrender-parameters* /}
55
55
56
- * ` id ` :` <Profiler> ` 树的字符串 ` id ` 属性,用于标识刚刚提交的部分。如果你使用多个 profiler,可以通过此属性识别已提交的树的哪个部分 。
57
- * ` phase ` :` "mount" ` 、` "update" ` 或 ` "nested-update" ` 。这可以让你知道树是首次挂载还是由于属性、状态或 hook 的更改而重新渲染。
58
- * ` actualDuration ` :当前更新期间用于渲染 ` <Profiler> ` 及其后代的时间,以毫秒为单位。显示子树在使用记忆化 (例如 [ ` memo ` ] ( /reference/react/memo ) 和 [ ` useMemo ` ] ( /reference/react/useMemo ) )方面的效果如何 。理想情况下,此值在初始挂载后应显著减少,因为许多后代组件只会在其特定的 props 变化时需要重新渲染 。
59
- * ` baseDuration ` :估计在没有任何优化的情况下重新渲染整个 ` <Profiler> ` 子树所需的时间,以毫秒为单位 。它通过累加树中每个组件的最近一次渲染持续时间来计算。此值估计了渲染的最差情况成本(例如初始挂载或没有记忆化的树)。与 ` actualDuration ` 进行比较,以确定记忆化是否起作用。
60
- * ` startTime ` :当 React 开始渲染当前更新时的时间戳 。
61
- * ` endTime ` :当 React 提交当前更新时的时间戳。此值在提交的所有性能分析器之间共享 ,如果需要,可以对它们进行分组。
56
+ * ` id ` :字符串,为 ` <Profiler> ` 树的 ` id ` 属性,用于标识刚刚提交的部分。如果使用多个 profiler,可以通过此属性识别提交的是树中的哪一部分 。
57
+ * ` phase ` :为 ` "mount" ` 、` "update" ` 或 ` "nested-update" ` 中之一。这可以让你知道组件树是首次挂载还是由于 props、state 或 hook 的更改而重新渲染。
58
+ * ` actualDuration ` :在此次更新中,渲染 ` <Profiler> ` 组件树的毫秒数。这可以显示子树在使用记忆化 (例如 [ ` memo ` ] ( /reference/react/memo ) 和 [ ` useMemo ` ] ( /reference/react/useMemo ) )后的效果如何 。理想情况下,此值在挂载后应显著减少,因为许多后代组件只会在特定的 props 变化时重新渲染 。
59
+ * ` baseDuration ` :估算在没有任何优化的情况下重新渲染整棵 ` <Profiler> ` 子树所需的毫秒数 。它通过累加树中每个组件的最近一次渲染持续时间来计算。此值估计了渲染的最差情况成本(例如初始挂载或没有使用记忆化的树)。将其与 ` actualDuration ` 进行比较,以确定记忆化是否起作用。
60
+ * ` startTime ` :当 React 开始渲染此次更新时的时间戳 。
61
+ * ` endTime ` :当 React 提交此次更新时的时间戳。此值在提交的所有 profiler 中共享 ,如果需要,可以对它们进行分组。
62
62
63
63
---
64
64
@@ -77,25 +77,25 @@ function onRender(id, phase, actualDuration, baseDuration, startTime, commitTime
77
77
< / App>
78
78
```
79
79
80
- 这需要两个属性:` id ` (字符串)和 ` onRender ` 回调函数(函数),React 在树中的任何组件 “提交”更新时调用该函数 。
80
+ 这需要两个属性:` id ` (字符串)和 ` onRender ` 回调函数(函数),每当 React 树中的任何组件 “提交”更新时都将调用该函数 。
81
81
82
82
<Pitfall >
83
83
84
- 进行性能分析会增加一些额外的开销,因此 ** 在默认情况下,它在生产环境中是被禁用的** 。如果要启用生产环境下的性能分析,你需要启用一个 [ 特殊的带有性能分析功能的生产构建] ( https://fb.me/react-profiling ) 。
84
+ 进行性能分析会增加一些额外的开销,因此 ** 在默认情况下,它在生产环境中是被禁用的** 。如果要启用生产环境下的性能分析,你需要启用 [ 特殊的带有性能分析功能的生产构建] ( https://fb.me/react-profiling ) 。
85
85
86
86
</Pitfall >
87
87
88
88
<Note >
89
89
90
- ` <Profiler> ` 允许你编程式收集性能测量数据。如果你正在寻找一个交互式的性能分析工具,可以尝试使用 [ React Developer Tools ] ( /learn/react-developer-tools ) 中的 Profiler 标签页。它提供了类似浏览器扩展的功能 。
90
+ ` <Profiler> ` 允许你编程式收集性能测量数据。如果你正在寻找一个交互式的性能分析工具,可以尝试使用 [ React 开发者工具 ] ( /learn/react-developer-tools ) 中的 Profiler 标签页。它提供了类似浏览器扩展程序的功能 。
91
91
92
92
</Note >
93
93
94
94
---
95
95
96
96
### 测量应用的不同部分 {/* measuring-different-parts-of-the-application* /}
97
97
98
- 你可以使用多个 ` <Profiler> ` 组件来测量你的应用的不同部分 :
98
+ 你可以使用多个 ` <Profiler> ` 组件来测量应用的不同部分 :
99
99
100
100
``` js {5,7}
101
101
< App>
@@ -108,7 +108,7 @@ function onRender(id, phase, actualDuration, baseDuration, startTime, commitTime
108
108
< / App>
109
109
```
110
110
111
- 你还可以嵌套 ` <Profiler> ` 组件:
111
+ 还可以嵌套 ` <Profiler> ` 组件:
112
112
113
113
``` js {5,7,9,12}
114
114
< App>
@@ -126,7 +126,7 @@ function onRender(id, phase, actualDuration, baseDuration, startTime, commitTime
126
126
< / App>
127
127
```
128
128
129
- 虽然 ` <Profiler> ` 是一个轻量级组件,但它应该仅在必要时使用。每次使用都会给应用增加一些 CPU 和内存开销。
129
+ 虽然 ` <Profiler> ` 是一个轻量级组件,但它应该仅在必要时使用。每次使用都会给应用增加一些额外的 CPU 和内存开销。
130
130
131
131
---
132
132
0 commit comments