--- category: '@Integrations' --- # useCookies Wrapper for [`universal-cookie`](https://www.npmjs.com/package/universal-cookie). ::: tip When using with Nuxt 3, this functions will **NOT** be auto imported in favor of Nuxt's built-in [`useCookie()`](https://v3.nuxtjs.org/api/composables/use-cookie). Use explicit import if you want to use the function from VueUse. ::: ## Install ```bash npm i universal-cookie@^7 ``` ## Usage ### Common usage ```vue ``` ## Options Access and modify cookies using vue composition-api. > By default, you should use it inside `setup()`, but this function also works anywhere else. ```ts import { useCookies } from '@vueuse/integrations/useCookies' // ---cut--- const { get, getAll, set, remove, addChangeListener, removeChangeListener } = useCookies(['cookie-name'], { doNotParse: false, autoUpdateDependencies: false }) ``` ### `dependencies` (optional) Let you optionally specify a list of cookie names your component depend on or that should trigger a re-render. If unspecified, it will render on every cookie change. ### `options` (optional) - `doNotParse` (boolean = false): do not convert the cookie into an object no matter what. **Passed as default value to `get`/`getAll` methods.** - `autoUpdateDependencies` (boolean = false): automatically add cookie names ever provided to `get` method. If **true** then you don't need to care about provided `dependencies`. ### `cookies` (optional) Let you provide a `universal-cookie` instance (creates a new instance by default) > Info about methods available in the [universal-cookie api docs](https://www.npmjs.com/package/universal-cookie#api---cookies-class) ## `createCookies([req])` Create a `universal-cookie` instance using request (default is window.document.cookie) and returns `useCookies` function with provided universal-cookie instance - req (object): Node's [http.IncomingMessage](https://nodejs.org/api/http.html#http_class_http_incomingmessage) request object ## Type Declarations ```ts /** * Creates a new {@link useCookies} function * @param req - incoming http request (for SSR) * @see https://github.com/reactivestack/cookies/tree/master/packages/universal-cookie universal-cookie * @description Creates universal-cookie instance using request (default is window.document.cookie) and returns {@link useCookies} function with provided universal-cookie instance */ export declare function createCookies(req?: IncomingMessage): ( dependencies?: string[] | null, { doNotParse, autoUpdateDependencies, }?: { doNotParse?: boolean | undefined autoUpdateDependencies?: boolean | undefined }, ) => { /** * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies */ get: (name: string, options?: CookieGetOptions | undefined) => T /** * Reactive get all cookies */ getAll: (options?: CookieGetOptions | undefined) => T set: ( name: string, value: any, options?: CookieSetOptions | undefined, ) => void remove: (name: string, options?: CookieSetOptions | undefined) => void addChangeListener: (callback: CookieChangeListener) => void removeChangeListener: (callback: CookieChangeListener) => void } /** * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR) * @param dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes. * @param options * @param options.doNotParse - don't try parse value as JSON * @param options.autoUpdateDependencies - automatically update watching dependencies * @param cookies - universal-cookie instance * * @__NO_SIDE_EFFECTS__ */ export declare function useCookies( dependencies?: string[] | null, { doNotParse, autoUpdateDependencies, }?: { doNotParse?: boolean | undefined autoUpdateDependencies?: boolean | undefined }, cookies?: Cookie, ): { /** * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies */ get: (name: string, options?: CookieGetOptions | undefined) => T /** * Reactive get all cookies */ getAll: (options?: CookieGetOptions | undefined) => T set: ( name: string, value: any, options?: CookieSetOptions | undefined, ) => void remove: (name: string, options?: CookieSetOptions | undefined) => void addChangeListener: (callback: CookieChangeListener) => void removeChangeListener: (callback: CookieChangeListener) => void } ```