响应式:调度
nextTick()
在下一次 DOM 更新周期后执行回调。
类型定义
ts
declare function nextTick(fn?: () => void): Promise<void>参数
| 参数 | 类型 | 说明 |
|---|---|---|
fn | () => void | 可选的回调函数 |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | DOM 更新完成后解析 |
示例
回调形式:
ts
import { nextTick, ref } from 'vitarx'
const count = ref(0)
count.value++
nextTick(() => {
// DOM 已更新
console.log('DOM updated')
})异步/await 形式:
ts
count.value++
await nextTick()
// DOM 已更新flushSync()
立即同步执行调度队列中的所有任务,绕过微任务队列。
类型定义
ts
declare function flushSync(): void返回值
| 类型 | 说明 |
|---|---|
void | — |
行为说明
- 按顺序同步执行所有 pre、main、post 队列任务,立即看到更新效果
- 会阻塞主线程,仅在需要强制同步更新时使用(如同步获取更新后的 DOM)
- 如果正在刷新中,则跳过执行以避免并发问题
示例
ts
import { flushSync, ref } from 'vitarx'
const count = ref(0)
count.value++
// 此时 DOM 更新还在队列中
flushSync()
// 现在可以同步读取更新后的 DOM
console.log(document.body.innerHTML)注意:大多数场景应优先使用
nextTick()。仅当必须在同一宏任务内读取更新后的 DOM(如测量布局、同步导出内容)时才使用flushSync()。