FlowModel vs. React.Component

Comparación de Responsabilidades Básicas

Característica/CapacidadReact.ComponentFlowModel
Capacidad de renderizadoSí, el método render() genera la interfaz de usuarioSí, el método render() genera la interfaz de usuario
Gestión de estadostate y setState integradosUsa props, pero la gestión de estado depende más de la estructura del árbol de modelos
Ciclo de vidaSí, por ejemplo, componentDidMountSí, por ejemplo, onInit, onMount, onUnmount
PropósitoConstrucción de componentes de interfaz de usuarioConstrucción de "árboles de modelos" estructurados, basados en flujos y dirigidos por datos
Estructura de datosÁrbol de componentesÁrbol de modelos (admite modelos padre-hijo, bifurcación de múltiples instancias)
Componentes hijosUsa JSX para anidar componentesUsa setSubModel/addSubModel para establecer explícitamente submodelos
Comportamiento dinámicoEl enlace de eventos y las actualizaciones de estado impulsan la interfaz de usuarioRegistro/envío de flujos, manejo de flujos automáticos
PersistenciaSin mecanismo integradoAdmite persistencia (por ejemplo, model.save())
Admite bifurcación (múltiples renderizados)No (requiere reutilización manual)Sí (createFork para múltiples instanciaciones)
Control del motorNingunoSí, es gestionado, registrado y cargado por FlowEngine

Comparación del Ciclo de Vida

Gancho del ciclo de vidaReact.ComponentFlowModel
Inicializaciónconstructor, componentDidMountonInit, onMount
DesmontajecomponentWillUnmountonUnmount
Respuesta a la entradacomponentDidUpdateonBeforeAutoFlows, onAfterAutoFlows
Manejo de errorescomponentDidCatchonAutoFlowsError

Comparación de la Estructura de Construcción

React:

class MyComponent extends React.Component {
  render() {
    return <div>Hello</div>;
  }
}

FlowModel:

class HelloModel extends FlowModel {
  render() {
    return <div>Hello</div>;
  }
}

Árbol de Componentes vs. Árbol de Modelos

  • Árbol de Componentes de React: Un árbol de renderizado de interfaz de usuario formado por el anidamiento de JSX en tiempo de ejecución.
  • Árbol de Modelos de FlowModel: Un árbol de estructura lógica gestionado por FlowEngine, que puede ser persistido y permite el registro y control dinámico de submodelos. Es adecuado para construir bloques de página, flujos de acción, modelos de datos, etc.

Características Especiales (Exclusivas de FlowModel)

FunciónDescripción
registerFlowRegistrar un flujo
applyFlow / dispatchEventEjecutar/disparar un flujo
setSubModel / addSubModelControlar explícitamente la creación y el enlace de submodelos
createForkPermite reutilizar la lógica de un modelo para múltiples renderizados (por ejemplo, cada fila en una tabla)
openFlowSettingsConfiguración de los pasos del flujo
save / saveStepParams()El modelo puede ser persistido e integrado con el backend

Resumen

AspectoReact.ComponentFlowModel
Escenarios adecuadosOrganización de componentes de la capa de interfaz de usuarioGestión de flujos y bloques dirigida por datos
Idea centralInterfaz de usuario declarativaFlujo estructurado dirigido por modelos
Método de gestiónReact controla el ciclo de vidaFlowModel controla el ciclo de vida y la estructura del modelo
VentajasAmplio ecosistema y herramientasFuertemente estructurado, los flujos pueden ser persistidos, los submodelos son controlables

FlowModel puede usarse de forma complementaria con React: utilice React para el renderizado dentro de un FlowModel, mientras que su ciclo de vida y estructura son gestionados por FlowEngine.