Appearance
useShareState
▸ useShareState(source
, options?
): Ref
<any
>
利用 Event Bus 实现跨页面组件之间的状态数据同步,可以自由选择同步哪些字段
参数
Name | Type | Description |
---|---|---|
source | WatchSource <any > | 源数据,发生变化时会覆盖更新 state |
options | Object | |
options.keyFn | (val : any ) => string | 唯一标识的字段名称,作为 eventBus 的事件名称的一部分 |
options.namespace | string | 命名空间,用于区分相同类别的共享 |
options.publishKeys | undefined | string | string [] | 控制当自身发生变化时,哪些字段需要向外部同步,支持多层级路径,不传默认为全部 |
options.subscribeKeys | undefined | string | string [] | 控制当外部发生变化时,哪些字段需要向自身同步,支持多层级路径,不传默认为全部 |
返回值
Ref
<any
>
已共享状态的 ref 变量
Deprecated
使用 createShareState 方法代替
示例
ts
const SHARE_STATE_NAMESPACE = {
USER: 'user',
}
const myRef = ref({id: '1', count: 2})
const state = useShareState(myRef, {
namespace: SHARE_STATE_NAMESPACE.USER,
keyFn: val => 'user-id-' + val.id,
subscribeKeys: ['count'],
})