跳到主要内容

reactiveOmit

分类
导出大小
395 B
上次更改
上个月

从响应式对象中响应式地省略字段。

用法

基本用法

ts
import { 
reactiveOmit
} from '@vueuse/core'
const
obj
=
reactive
({
x
: 0,
y
: 0,
elementX
: 0,
elementY
: 0,
}) const
picked
=
reactiveOmit
(
obj
, 'x', 'elementX') // { y: number, elementY: number }

断言函数用法

ts
import { 
reactiveOmit
} from '@vueuse/core'
const
obj
=
reactive
({
bar
: 'bar',
baz
: 'should be omit',
foo
: 'foo2',
qux
: true,
}) const
picked
=
reactiveOmit
(
obj
, (
value
,
key
) =>
key
=== 'baz' ||
value
=== true)
// { bar: string, foo: string }

场景

选择性地将 props 传递给子组件

vue
<script setup lang="ts">
import { 
reactiveOmit
} from '@vueuse/core'
const
props
=
defineProps
<{
value
: string
color
?: string
font
?: string
}>() const
childProps
=
reactiveOmit
(
props
, 'value')
</script> <template> <
div
>
<!-- only passes "color" and "font" props to child --> <ChildComp v-bind="
childProps
" />
</
div
>
</template>

类型声明

ts
export type 
ReactiveOmitReturn
<
T
extends object,
K
extends keyof
T
| undefined = undefined,
> = [
K
] extends [undefined] ?
Partial
<
T
> :
Omit
<
T
,
Extract
<
K
, keyof
T
>>
export type
ReactiveOmitPredicate
<
T
> = (
value
:
T
[keyof
T
],
key
: keyof
T
,
) => boolean export declare function
reactiveOmit
<
T
extends object,
K
extends keyof
T
>(
obj
:
T
,
...
keys
: (
K
|
K
[])[]
):
ReactiveOmitReturn
<
T
,
K
>
export declare function
reactiveOmit
<
T
extends object>(
obj
:
T
,
predicate
:
ReactiveOmitPredicate
<
T
>,
):
ReactiveOmitReturn
<
T
>

来源

源代码文档

贡献者

Anthony Fu
Anthony Fu
Arthur Darkstone
SerKo
Robin
Doctorwu
丶远方
Brain777777
qiang

更新日志

554b7 - fix: 更新 createTemplatePromise, useMagicKeys, use… 的返回类型 (#4963)
v13.1.0
c1d6e - feat(shared): 确保返回类型存在 (#4659)
v12.3.0
59f75 - feat(toValue): 废弃 @vueuse/shared 中的 toValue,转而使用 Vue 的原生函数
0a9ed - feat!: 放弃对 Vue 2 的支持,优化打包并清理 (#4349)

根据 MIT 许可证发布。