mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-16 10:54:49 +00:00
d365a45eb1
Co-authored-by: pooya parsa <pyapar@gmail.com>
1.9 KiB
1.9 KiB
NuxtApp
In Nuxt 3, you can access runtime app context within composables, components, and plugins.
In Nuxt 2, this was referred to as nuxt context
Accessing NuxtApp
Within composables, plugins and components you can access nuxtApp
with useNuxtApp
:
import { useNuxtApp } from '#app'
function useMyComposable () {
const nuxtApp = useNuxtApp()
// access runtime nuxt app instance
}
Plugins also receive nuxtApp
as the first argument for convenience. Read more about plugins.
Providing helpers
You can provide helpers to be usable across all composables and application. This usually happens within a nuxt plugin.
const nuxtApp = useNuxtApp()
nuxtApp.provide('hello', (name) => `Hello ${name}!`)
console.log(nuxtApp.$hello('name')) // Prints "Hello name!"
In Nuxt 2 plugins, this was referred to as inject function
NuxtApp interface (advanced)
nuxtApp
has the following properties: (note: this is an internal interface and some properties might change until stable release)
const nuxtApp = {
vueApp, // the global Vue application: https://v3.vuejs.org/api/application-api.html
// These let you call and add runtime NuxtApp hooks
// https://github.com/nuxt/framework/blob/main/packages/nuxt3/src/app/nuxt.ts#L18
hooks,
hook,
callHook,
// Only accessible on server-side
ssrContext: {
url,
req,
res,
runtimeConfig,
noSSR,
},
// This will be stringified and passed from server to client
payload: {
serverRendered: true,
data: {},
state: {}
}
provide: (name: string, value: any) => void
}
For more information, check out the source code.