Skip to content

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

参数

参数名类型必填说明
namestringCookie名称
depsUseReactiveCookieDeps环境依赖

返回值

类型说明
ReactiveCookie响应式Cookie对象

ReactiveCookie 属性和方法

名称类型说明
valuestring | null当前Cookie值(只读)
set(value: string, options?) => void设置Cookie
remove(options?) => void删除Cookie
subscribe(listener: () => void) => () => void订阅变化
dispose() => void清理所有订阅

工作原理

  1. 使用createReactive创建响应式状态对象
  2. 解析当前Cookie字符串获取初始值
  3. 提供set方法设置Cookie并更新响应式状态
  4. 提供remove方法删除Cookie并更新状态
  5. 通过subscribe方法监听Cookie值变化
  6. 支持跨框架使用(不依赖Vue)