provide()
提供一个可以由后代组件注入的值。
类型
function provide<T>(key: InjectionKey<T> | string, value: T): void
细节
provide()
接受两个参数:键,可以是字符串或符号,以及要注入的值。
使用 TypeScript 时,键可以是转换为的符号InjectionKey
。Vue 提供的扩展实用程序类型,Symbol()
可用于在provide()
和之间同步值类型inject()
。
与生命周期挂钩注册 API 类似,provide()
必须在组件setup()
阶段同步调用。
例子
<script setup> import { ref, provide } from 'vue' import { fooSymbol } from './injectionSymbols' // provide static value provide('foo', 'bar') // provide reactive value const count = ref(0) provide('count', count) // provide with Symbol keys provide(fooSymbol, count) </script>