# Trabajadores y rendimiento

<PageBadges />

## Ejecución del motor

El valor predeterminado `engineMode="main-thread"` evalúa el motor de formulario en el subproceso de la interfaz de usuario.
`engineMode="worker"` para mover la evaluación del motor al módulo empaquetado worker cuando Web Workers
están disponibles:

```jsx
<FormRenderer schema={schema} engineMode="worker" />
```

Vite soporta el módulo estático - worker patrón utilizado por el paquete y emite el worker durante un
La Vite mantenida excluye a `form0-react` de la optimización de dependencias.
así que este worker sigue estando disponible.

La fábrica pública `FormRenderer` API no acepta una fábrica personalizada worker URL o worker. Aplicaciones
usando otro bundler debe confirmar que soporta
`new Worker(new URL("./worker.js", import.meta.url), { type: "module" })`; de lo contrario, use el valor predeterminado
Modo de subproceso principal.

Si el navegador no tiene soporte para Worker, el binding vuelve a la ejecución del subproceso principal.

## Modo de almacenamiento React

`engineStoreMode="snapshot"` clona el motor snapshot en el estado React y es el predeterminado.
`engineStoreMode="selector"` utiliza suscripciones de campo para reducir los rerenders amplios.

Tratar el modo selector como una optimización: verificar errores de campo, resúmenes de navegación, repetibles
secciones y el comportamiento de submission en la aplicación de destino antes de adoptarla.
