Function inject()
Injects a value provided by an ancestor component
or the application (via app.provide()
).
// without default value
function inject<T>(key: InjectionKey<T> | string): T | undefined
// with default value
function inject<T>(key: InjectionKey<T> | string, defaultValue: T): T
// with factory
function inject<T>(
key: InjectionKey<T> | string,
defaultValue: () => T,
treatDefaultAsFactory: true
): T
<script setup>
import { inject } from 'vue'
import { fooSymbol } from './injectionSymbols'
// inject static value without default
const foo = inject('foo')
// inject reactive value
const count = inject('count')
// inject with Symbol keys
const foo2 = inject(fooSymbol)
// inject with default value
const bar = inject('foo', 'default value')
// inject with function default value
const fn = inject('function', () => {})
// inject with default value factory
const baz = inject('factory', () => new ExpensiveObject(), true)
</script>