主题
syncRefs
使目标引用与源引用保持同步
🌐 Keep target refs in sync with a source ref
示例
用法
🌐 Usage
ts
import { syncRefs } from '@vueuse/core'
import { shallowRef } from 'vue'
const source = shallowRef('hello')
const target = shallowRef('target')
const stop = syncRefs(source, target)
console.log(target.value) // hello
source.value = 'foo'
console.log(target.value) // foo与多个目标同步
🌐 Sync with multiple targets
你还可以传递一组引用来同步。
🌐 You can also pass an array of refs to sync.
ts
import { syncRefs } from '@vueuse/core'
import { shallowRef } from 'vue'
const source = shallowRef('hello')
const target1 = shallowRef('target1')
const target2 = shallowRef('target2')
const stop = syncRefs(source, [target1, target2])
console.log(target1.value) // hello
console.log(target2.value) // hello
source.value = 'foo'
console.log(target1.value) // foo
console.log(target2.value) // foo监视选项
🌐 Watch options
syncRefs 的选项类似于 watch 的 WatchOptions,但默认值不同。
🌐 The options for syncRefs are similar to watch's WatchOptions but with different default values.
ts
export interface SyncRefOptions {
/**
* Timing for syncing, same as watch's flush option
*
* @default 'sync'
*/
flush?: WatchOptionFlush
/**
* Watch deeply
*
* @default false
*/
deep?: boolean
/**
* Sync values immediately
*
* @default true
*/
immediate?: boolean
}js
export {}设置 { flush: 'pre' } 时,目标引用将在渲染开始之前的当前“滴答”结束时更新。
🌐 When setting { flush: 'pre' }, the target reference will be updated at the end of the current "tick" before rendering starts.
ts
import { syncRefs } from '@vueuse/core'
import { nextTick, shallowRef } from 'vue'
const source = shallowRef('hello')
const target = shallowRef('target')
syncRefs(source, target, { flush: 'pre' })
console.log(target.value) // hello
source.value = 'foo'
console.log(target.value) // hello <- still unchanged, because of flush 'pre'
await nextTick()
console.log(target.value) // foo <- changed!