|
300 | 300 | stop() |
301 | 301 | ``` |
302 | 302 |
|
303 | | - 暂停/恢复观察者:<sup class="vt-badge" data-text="3.5+" /> |
| 303 | + 暂停/恢复侦听器:<sup class="vt-badge" data-text="3.5+" /> |
304 | 304 |
|
305 | 305 | ```js |
306 | 306 | const { stop, pause, resume } = watchEffect(() => {}) |
307 | 307 |
|
308 | | - // 临时暂停观察者 |
| 308 | + // 暂停侦听器 |
309 | 309 | pause() |
310 | 310 |
|
311 | 311 | // 稍后恢复 |
|
320 | 320 | ```js |
321 | 321 | watchEffect(async (onCleanup) => { |
322 | 322 | const { response, cancel } = doAsyncWork(newId) |
323 | | - // 如果 `id` 更改,则将调用 `cancel`。 |
324 | | - // 如果之前的请求尚未完成 |
| 323 | + // 如果 `id` 变化,则调用 `cancel`, |
| 324 | + // 如果之前的请求未完成,则取消该请求 |
325 | 325 | onCleanup(cancel) |
326 | 326 | data.value = await response |
327 | 327 | }) |
|
334 | 334 |
|
335 | 335 | watchEffect(async () => { |
336 | 336 | const { response, cancel } = doAsyncWork(newId) |
337 | | - // `cancel` will be called if `id` changes, cancelling |
338 | | - // the previous request if it hasn't completed yet |
| 337 | + // 如果 `id` 变化,则调用 `cancel`, |
| 338 | + // 如果之前的请求未完成,则取消该请求 |
339 | 339 | onWatcherCleanup(cancel) |
340 | 340 | data.value = await response |
341 | 341 | }) |
|
411 | 411 | } |
412 | 412 |
|
413 | 413 | interface WatchHandle { |
414 | | - (): void // callable, same as `stop` |
| 414 | + (): void // 可调用,与 `stop` 相同 |
415 | 415 | pause: () => void |
416 | 416 | resume: () => void |
417 | 417 | stop: () => void |
|
438 | 438 | 第三个可选的参数是一个对象,支持以下这些选项: |
439 | 439 |
|
440 | 440 | - **`immediate`**:在侦听器创建时立即触发回调。第一次调用时旧值是 `undefined`。 |
441 | | - - **`deep`**:如果源是对象,则强制进行深度遍历,以便在深度变化时触发回调。在 3.5+ 版本中,此参数还可以是指示最大遍历深度的数字。请参阅[深度观察者](/guide/essentials/watchers#deep-watchers)。 |
| 441 | + - **`deep`**:如果源是对象,强制深度遍历,以便在深层级变更时触发回调。在 3.5+ 中,此参数还可以是指示最大遍历深度的数字。参考[深层侦听器](/guide/essentials/watchers#deep-watchers)。 |
442 | 442 | - **`flush`**:调整回调函数的刷新时机。参考[回调的刷新时机](/guide/essentials/watchers#callback-flush-timing)及 [`watchEffect()`](/api/reactivity-core#watcheffect)。 |
443 | 443 | - **`onTrack / onTrigger`**:调试侦听器的依赖。参考[调试侦听器](/guide/extras/reactivity-in-depth#watcher-debugging)。 |
444 | | - - **`once`**:(3.4+)仅运行回调一次。观察者在第一次回调运行后自动停止。 |
| 444 | + - **`once`**:(3.4+)回调函数只会运行一次。侦听器将在回调函数首次运行后自动停止。 |
445 | 445 |
|
446 | 446 | 与 [`watchEffect()`](#watcheffect) 相比,`watch()` 使我们可以: |
447 | 447 |
|
|
525 | 525 | stop() |
526 | 526 | ``` |
527 | 527 |
|
528 | | - 暂停/恢复观察者: <sup class="vt-badge" data-text="3.5+" /> |
| 528 | + 暂停/恢复侦听器: <sup class="vt-badge" data-text="3.5+" /> |
529 | 529 |
|
530 | 530 | ```js |
531 | 531 | const { stop, pause, resume } = watchEffect(() => {}) |
532 | 532 |
|
533 | | - // temporarily pause the watcher |
| 533 | + // 暂停侦听器 |
534 | 534 | pause() |
535 | 535 |
|
536 | | - // resume later |
| 536 | + // 稍后恢复 |
537 | 537 | resume() |
538 | 538 |
|
539 | | - // stop |
| 539 | + // 停止 |
540 | 540 | stop() |
541 | 541 | ``` |
542 | 542 |
|
|
571 | 571 |
|
572 | 572 | ## onWatcherCleanup() <sup class="vt-badge" data-text="3.5+" /> {#onwatchercleanup} |
573 | 573 |
|
574 | | -注册一个清理函数,当前的观察者即将重新运行时执行。只能在 `watchEffect` 效果函数或 `watch` 回调函数的同步执行期间调用(即不能在异步函数的 `await` 语句之后调用)。 |
| 574 | +注册一个清理函数,在当前侦听器即将重新运行时执行。只能在 `watchEffect` 作用函数或 `watch` 回调函数的同步执行期间调用(即不能在异步函数的 `await` 语句之后调用)。 |
575 | 575 |
|
576 | 576 | - **类型** |
577 | 577 |
|
|
589 | 589 |
|
590 | 590 | watch(id, (newId) => { |
591 | 591 | const { response, cancel } = doAsyncWork(newId) |
592 | | - // 如果 `id` 发生更改,将调用 `cancel` 来取消前一个请求,以防它尚未完成。 |
| 592 | + // 如果 `id` 变化,则调用 `cancel`, |
| 593 | + // 如果之前的请求未完成,则取消该请求 |
593 | 594 | onWatcherCleanup(cancel) |
594 | 595 | }) |
595 | 596 | ``` |
0 commit comments