From v4.0, it works for Vue 2 & 3 within a single package by the power of vue-demi!

npm i @vueuse/core

Add ons | Nuxt Module

From v6.0, VueUse requires vue >= v3.2 or @vue/composition-api >= v1.1



<script src=""></script>
<script src=""></script>

It will be exposed to global as window.VueUse


From v7.2.0, we shipped a Nuxt module to enable auto importing for Nuxt 3 and Nuxt Bridge.

npm i -D @vueuse/nuxt @vueuse/core

Nuxt 3

// nuxt.config.ts
export default defineNuxtConfig({
  modules: [

And then use VueUse function anywhere in your Nuxt app. For example:

<script setup lang="ts">
const { x, y } = useMouse()

  <div>pos: {{x}}, {{y}}</div>

Usage Example

Simply importing the functions you need from @vueuse/core

import { useLocalStorage, useMouse, usePreferredDark } from '@vueuse/core'
export default {
  setup() {
    // tracks mouse position
    const { x, y } = useMouse()
    // is user prefers dark theme
    const isDark = usePreferredDark()
    // persist state in localStorage
    const store = useLocalStorage(
        name: 'Apple',
        color: 'red',
    return { x, y, isDark, store }