跳到主要内容

watchArray

分类
导出大小
303 B
上次更改
8 个月前

监听数组的添加和删除。

用法

watch 类似,但将添加和删除的元素提供给回调函数。如果列表通过 pushsplice 等方法原地更新,请传递 { deep: true }

ts
import { 
watchArray
} from '@vueuse/core'
const
list
=
ref
([1, 2, 3])
watchArray
(
list
, (
newList
,
oldList
,
added
,
removed
) => {
console
.
log
(
newList
) // [1, 2, 3, 4]
console
.
log
(
oldList
) // [1, 2, 3]
console
.
log
(
added
) // [4]
console
.
log
(
removed
) // []
})
onMounted
(() => {
list
.
value
= [...
list
.
value
, 4]
})

类型声明

ts
export declare type 
WatchArrayCallback
<
V
= any,
OV
= any> = (
value
:
V
,
oldValue
:
OV
,
added
:
V
,
removed
:
OV
,
onCleanup
: (
cleanupFn
: () => void) => void,
) => any /** * Watch for an array with additions and removals. * * @see https://vueuse.org.cn/watchArray */ export declare function
watchArray
<
T
,
Immediate
extends
Readonly
<boolean> = false,
>(
source
:
WatchSource
<
T
[]> |
T
[],
cb
:
WatchArrayCallback
<
T
[],
Immediate
extends true ?
T
[] | undefined :
T
[]>,
options
?:
WatchOptions
<
Immediate
>,
):
WatchHandle

来源

源代码文档

贡献者

Anthony Fu
Anthony Fu
sun0day
Di Weng

更新日志

v12.3.0
59f75 - feat(toValue): 废弃 @vueuse/shared 中的 toValue,转而使用 Vue 的原生函数
0a9ed - feat!: 放弃对 Vue 2 的支持,优化打包并清理 (#4349)

根据 MIT 许可证发布。