useReactiveCookie
创建响应式Cookie(跨框架实现)
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.getCookie | () => string | 获取cookie字符串的方法 |
deps.setCookie | (value: string) => void | 设置cookie的方法 |
函数签名
typescript
interface UseReactiveCookieDeps {
getCookie: () => string
setCookie: (value: string) => void
}
interface CookieOptions {
days?: number
path?: string
domain?: string
secure?: boolean
sameSite?: 'Strict' | 'Lax' | 'None'
}
interface ReactiveCookie {
value: string | null
set: (value: string, options?: CookieOptions) => void
remove: (options?: Pick<CookieOptions, 'path' | 'domain'>) => void
subscribe: (listener: () => void) => () => void
dispose: () => void
}
function useReactiveCookie(name: string, deps: UseReactiveCookieDeps): ReactiveCookie参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | Cookie名称 |
deps | UseReactiveCookieDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
ReactiveCookie | 响应式Cookie对象 |
ReactiveCookie 属性和方法
| 名称 | 类型 | 说明 |
|---|---|---|
value | string | null | 当前Cookie值(只读) |
set | (value: string, options?) => void | 设置Cookie |
remove | (options?) => void | 删除Cookie |
subscribe | (listener: () => void) => () => void | 订阅变化 |
dispose | () => void | 清理所有订阅 |
工作原理
- 使用
createReactive创建响应式状态对象 - 解析当前Cookie字符串获取初始值
- 提供
set方法设置Cookie并更新响应式状态 - 提供
remove方法删除Cookie并更新状态 - 通过
subscribe方法监听Cookie值变化 - 支持跨框架使用(不依赖Vue)