Skip to content

extendRef

类别
导出体积
207 B
上次更改
5 months ago

向 Ref 添加额外属性。

用法

请注意,额外属性将无法在 Vue 的模板中访问。

ts
import { 
extendRef
} from '@vueuse/core'
import {
shallowRef
} from 'vue'
const
myRef
=
shallowRef
('content')
const
extended
=
extendRef
(
myRef
, {
foo
: 'extra data' })
extended
.
value
=== 'content'
extended
.
foo
=== '额外数据'

Refs 将被解封装并具有响应性

ts
const 
myRef
=
shallowRef
('content')
const
extraRef
=
shallowRef
('extra')
const
extended
=
extendRef
(
myRef
, {
extra
:
extraRef
})
extended
.
value
=== 'content'
extended
.
extra
=== 'extra'
extended
.
extra
= 'new data' // 将触发更新
extraRef
.
value
=== 'new data'

类型声明

ts
export type 
ExtendRefReturn
<
T
= any> =
Ref
<
T
>
export interface
ExtendRefOptions
<
Unwrap
extends boolean = boolean> {
/** * 是否将扩展属性设置为可枚举 * * @default false */
enumerable
?: boolean
/** * 是否对 Ref 属性进行解封装 * * @default true */
unwrap
?:
Unwrap
} /** * 重载 1:unwrap 设置为 false */ export declare function
extendRef
<
R
extends
Ref
<any>,
Extend
extends object,
Options
extends
ExtendRefOptions
<false>,
>(
ref
:
R
,
extend
:
Extend
,
options
?:
Options
):
ShallowUnwrapRef
<
Extend
> &
R
/** * 重载 2:unwrap 未设置或设置为 true */ export declare function
extendRef
<
R
extends
Ref
<any>,
Extend
extends object,
Options
extends
ExtendRefOptions
,
>(
ref
:
R
,
extend
:
Extend
,
options
?:
Options
):
Extend
&
R

源码

源码文档

贡献者

Anthony Fu
一纸忘忧
SerKo
Robin
IlyaL
Anthony Fu
vaakian X

更新日志

c1d6e - feat(shared): ensure return types exists (#4659)
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)