组件:依赖注入
provide()
提供一个可被后代组件注入的值。
类型定义
ts
declare function provide(name: string | symbol, value: unknown): void参数
| 参数 | 类型 | 说明 |
|---|---|---|
name | string | symbol | 依赖名称 |
value | unknown | 依赖值 |
示例
tsx
import { provide } from 'vitarx'
function Parent() {
provide('theme', 'dark')
provide(Symbol('config'), { debug: true })
return <Child />
}inject()
获取祖先组件提供的依赖值。
类型定义
ts
declare function inject<T>(name: string | symbol): T | undefined
declare function inject<T>(name: string | symbol, defaultValue: T): T
declare function inject<T extends AnyFunction>(
name: string | symbol,
defaultValue: T,
treatDefaultAsFactory: true
): ReturnType<T>参数
| 参数 | 类型 | 说明 |
|---|---|---|
name | string | symbol | 依赖名称 |
defaultValue | T | 可选的默认值 |
treatDefaultAsFactory | boolean | 是否将默认值视为工厂函数 |
返回值
| 调用方式 | 返回值 | 说明 |
|---|---|---|
inject(name) | T | undefined | 可能返回 undefined |
inject(name, default) | T | 有默认值保证非空 |
inject(name, factory, true) | ReturnType<T> | 工厂函数的返回值 |
示例
tsx
import { inject } from 'vitarx'
function Child() {
const theme = inject<string>('theme', 'light')
const config = inject('config', () => ({ debug: false }), true)
return <div>Theme: {theme}</div>
}参考:依赖注入