createForm()
Реализация фабричной функции
Call Signature
function createForm<T>(args): FormProxy<T>;
Defined in: form/create-form.ts:328
Создать форму из FormModel + единой схемы (архитектура M1, рекомендуемый путь).
Type Parameters
T
T
Parameters
args
Модель данных, layout-схема (component/componentProps) и (опционально) поведение
Returns
FormProxy<T>
Типизированная форма с Proxy-доступом к полям
Example
import { createModel, createForm } from '@reformer/core';
import { defineValidationSchema, validate, validateModel } from '@reformer/core/validation';
import { required, email, minLength } from '@reformer/core/validators';
interface UserForm {
email: string;
password: string;
}
const model = createModel<UserForm>({ email: '', password: '' });
// Layout-схема НЕ несёт validators — только component/componentProps.
const schema = {
children: [
{ value: model.$.email, component: Input },
{ value: model.$.password, component: Input },
],
};
const form = createForm<UserForm>({ model, schema });
form.email.setValue('test@mail.com');
// Валидация — ОТДЕЛЬНАЯ схема, прогон внешним раннером (ошибки сами доезжают до нод):
const validation = defineValidationSchema<UserForm>(({ model }) => {
validate(model.$.email, [required(), email()]);
validate(model.$.password, [required(), minLength(8)]);
});
const ok = await validateModel(model, validation);
Call Signature
function createForm<T>(config): FormProxy<T>;
Defined in: form/create-form.ts:330
Создать форму из FormModel + единой схемы (архитектура M1, рекомендуемый путь).
Type Parameters
T
T
Parameters
config
Returns
FormProxy<T>
Типизированная форма с Proxy-доступом к полям
Example
import { createModel, createForm } from '@reformer/core';
import { defineValidationSchema, validate, validateModel } from '@reformer/core/validation';
import { required, email, minLength } from '@reformer/core/validators';
interface UserForm {
email: string;
password: string;
}
const model = createModel<UserForm>({ email: '', password: '' });
// Layout-схема НЕ несёт validators — только component/componentProps.
const schema = {
children: [
{ value: model.$.email, component: Input },
{ value: model.$.password, component: Input },
],
};
const form = createForm<UserForm>({ model, schema });
form.email.setValue('test@mail.com');
// Валидация — ОТДЕЛЬНАЯ схема, прогон внешним раннером (ошибки сами доезжают до нод):
const validation = defineValidationSchema<UserForm>(({ model }) => {
validate(model.$.email, [required(), email()]);
validate(model.$.password, [required(), minLength(8)]);
});
const ok = await validateModel(model, validation);
Call Signature
function createForm<T>(schema): FormProxy<T>;
Defined in: form/create-form.ts:350
Создать форму только со схемой полей.
Type Parameters
T
T
Parameters
schema
FormSchema<T>
Схема полей формы
Returns
FormProxy<T>
Типизированная форма с Proxy-доступом к полям
Deprecated
Legacy / back-compat: плоская FormSchema с инлайн-значениями (value: '') — путь
ДО архитектуры M1. Для нового кода используйте перегрузку createForm({ model, schema })
(значения принадлежат FormModel, валидаторы — фабрики в validators: [...]).
Example
const form = createForm<UserForm>({
email: { value: '', component: Input },
password: { value: '', component: Input },
});