Skip to content

injections

描述

@silver-formily/vue 的所有 Symbol,可以通过注入这些 Symbol 来消费上下文实现更复杂的定制化开发。

FormSymbol

描述

Form 上下文,可以获取当前 Form 实例

签名

ts
import type { Form } from '@formily/core'
import type { InjectionKey, Ref } from 'vue'

export const FormSymbol: InjectionKey<Ref<Form>> = Symbol('form')

FieldSymbol

描述

字段上下文,可以获取当前字段实例

签名

ts
import type { GeneralField } from '@formily/core'
import type { InjectionKey, Ref } from 'vue'

export const FieldSymbol: InjectionKey<Ref<GeneralField>> = Symbol('field')

SchemaMarkupSymbol

描述

Schema 标签上下文,主要用于收集 JSX Markup 写法的 Schema 标签,然后转换成标准 JSON Schema

签名

ts
import type { Schema } from '@formily/json-schema'
import type { InjectionKey, Ref } from 'vue'

export const SchemaMarkupSymbol: InjectionKey<Ref<Schema>> = Symbol('schemaMarkup')

SchemaSymbol

描述

字段 Schema 上下文,主要用于获取当前字段的 Schema 信息

签名

ts
import type { Schema } from '@formily/json-schema'
import type { InjectionKey, Ref } from 'vue'

export const SchemaSymbol: InjectionKey<Ref<Schema>> = Symbol('schema')

SchemaExpressionScopeSymbol

描述

Schema 表达式作用域上下文

签名

ts
import type { InjectionKey, Ref } from 'vue'

export type SchemaExpressionScope = Record<string, unknown>

export const SchemaExpressionScopeSymbol: InjectionKey<Ref<SchemaExpressionScope>>
  = Symbol('schemaExpression')

SchemaOptionsSymbol

描述

Schema 全局参数上下文,主要用于获取从 createSchemaField 传入的参数

签名

ts
import type { InjectionKey, Ref } from 'vue'

export interface ISchemaFieldVueFactoryOptions<
  Components extends SchemaVueComponents = SchemaVueComponents,
> {
  components?: Components
  scope?: SchemaExpressionScope
}

export const SchemaOptionsSymbol: InjectionKey<Ref<ISchemaFieldVueFactoryOptions>>
  = Symbol('schemaOptions')