Skip to content

useCookies

Category
Export Size
534 B
Package
@vueuse/integrations
Last Changed
2 months ago

Wrapper for universal-cookie.

TIP

When using with Nuxt 3, this functions will NOT be auto imported in favor of Nuxt's built-in useCookie(). Use explicit import if you want to use the function from VueUse.

Available in the @vueuse/integrations add-on.

Install

bash
npm i universal-cookie@^7

Usage

Common usage

vue
<script setup lang="ts">
import { 
useCookies
} from '@vueuse/integrations/useCookies'
const
cookies
=
useCookies
(['locale'])
</script> <template> <
div
>
<
strong
>locale</
strong
>: {{
cookies
.
get
('locale') }}
<
hr
>
<
pre
>{{
cookies
.
getAll
() }}</
pre
>
<
button
@
click
="
cookies
.
set
('locale', 'ru-RU')">
Russian </
button
>
<
button
@
click
="
cookies
.
set
('locale', 'en-US')">
English </
button
>
</
div
>
</template>

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
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

createCookies([req])

Create a universal-cookie instance using request (default is window.document.cookie) and returns useCookies function with provided universal-cookie instance

Type Declarations

Show 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
: <
T
= any>(
name
: string,
options
?:
CookieGetOptions
| undefined) =>
T
/** * Reactive get all cookies */
getAll
: <
T
= any>(
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
: <
T
= any>(
name
: string,
options
?:
CookieGetOptions
| undefined) =>
T
/** * Reactive get all cookies */
getAll
: <
T
= any>(
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
}

Source

SourceDocs

Contributors

Anthony Fu
Anthony Fu
SerKo
tolja-ctd
jf908
Doctorwu
Alex Kozack
Konstantin Barabanov

Changelog

v13.6.0 on
d32f8 - refactor: add @__NO_SIDE_EFFECTS__ annotations to all pure functions (#4907)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)

Released under the MIT License.

Build faster with AI
New Masterclass to help you leverage AI in your Vue workflow
Get Early Access