Skip to main content
Nuxt Bridge provides access to Composition API syntax. It is specifically designed to be aligned with Nuxt 3. Because of this, there are a few extra steps to take when enabling Nuxt Bridge, if you have been using the Composition API previously.

Remove Modules

Before enabling Bridge’s Composition API, remove these packages:
  • Remove @vue/composition-api from your dependencies
  • Remove @nuxtjs/composition-api from your dependencies (and from your modules in nuxt.config)
package.json

Using @vue/composition-api

If you have been using just @vue/composition-api and not @nuxtjs/composition-api, then things are very straightforward.

Remove Manual Registration

First, remove the plugin where you are manually registering the Composition API. Nuxt Bridge will handle this for you.
plugins/composition-api.js

Auto-imports

Otherwise, there is nothing you need to do. However, if you want, you can remove your explicit imports from @vue/composition-api and rely on Nuxt Bridge auto-importing them for you.

Migrating from @nuxtjs/composition-api

Nuxt Bridge implements the Composition API slightly differently from @nuxtjs/composition-api and provides different composables (designed to be aligned with the composables that Nuxt 3 provides). Because some composables have been removed and don’t yet have a replacement, this will be a slightly more complicated process.

Remove @nuxtjs/composition-api Module

You don’t have to immediately update your imports yet - Nuxt Bridge will automatically provide a ‘shim’ for most imports you currently have, to give you time to migrate to the new, Nuxt 3-compatible composables, with the following exceptions:
  • withContext has been removed. See below for alternatives.
  • useStatic has been removed. There is no current replacement. Feel free to raise a discussion if you have a use case for this.
  • reqRef and reqSsrRef, which were deprecated, have now been removed entirely. Follow the instructions below regarding ssrRef to replace this.

Set bridge.capi

Enable Composition API support in your nuxt.config:
nuxt.config.ts

Composable Changes

useFetch

$fetchState and $fetch have been removed.

defineNuxtMiddleware

This was a type-helper stub function that is now removed. Remove the defineNuxtMiddleware wrapper:
middleware/auth.ts
For TypeScript support, you can use @nuxt/types:

defineNuxtPlugin

This was a type-helper stub function that is now removed. You may also keep using Nuxt 2-style plugins, by removing the function (as with defineNuxtMiddleware). Remove the defineNuxtPlugin wrapper:
plugins/my-plugin.ts
For TypeScript support, you can use @nuxt/types:
While this example is valid, Nuxt 3 introduces a new defineNuxtPlugin function that has a slightly different signature.

useRouter and useRoute

Nuxt Bridge provides direct replacements for these composables via useRouter and useRoute. The only key difference is that useRoute no longer returns a computed property.

Migration Examples

Before: @nuxtjs/composition-api

After: Nuxt Bridge

State Management

With Bridge, use useState for shared state:

Context Access

Replace useContext with specific composables:

Migration Checklist

  • Remove @vue/composition-api from dependencies
  • Remove @nuxtjs/composition-api from dependencies and modules
  • Remove manual Composition API registration
  • Enable bridge.capi in nuxt.config
  • Update useFetch usage
  • Remove defineNuxtMiddleware wrappers
  • Remove defineNuxtPlugin wrappers
  • Update useRoute (remove .value)
  • Replace useContext with specific composables
  • Replace ssrRef with useState

Next Steps

After migrating your Composition API usage:
  • Configure Bridge settings
  • Enable TypeScript for better type safety
  • Explore other Nuxt 3 features available in Bridge