@composi/runtime:

Init

Preparar para el Inicio

Cuando pasas un programa a la función run, el entorno de ejecución toma el valor devuelto por el método init para usarlo para configuracón. Si su programa tiene estado, entonces el método init tiene que devolverlo. El estado que init devuele puede ser cualquier dato vålido de JavaScript: null, undefined, strin, number, Array, Set, Map, Object, etc.

const program = {
  init() {
    return estado
  },
  view(estado, send) {},
  update(estado, msj send) {}
  subscriptions(send, getState) {}
}

Cuando quieres operar un efecto durante el inicio del programa, siempre va a ser el segundo valor en el vector que devuelve init:

Tal vez te preguntes por qué se puede tener estado con value de null or undefined. Supone que en las suscripciones del programa vas a obtener los datos de algún lugar para usar como el estado del programa. Ésto significa que no tendrás los datos a tiempo para retornarlos en el init. En vez, puedes devolver null en el init. O podrías dejar el init vacío, sin nada. En ambos casos vas a tener que chequear el valor del estado antes de usar la función render en el view:

const program = {
  init() {
    return estado
  },
  // Chequear que el estado tiene valor:
  view(estado, send) {
    return estado && render(<List {...{estado, send}}/>, '#lista')
  },
  update(estado, msj, send) {

  },
  subscriptions(send, getState) {
  // Obtener datos para el estado:
  return conseguirDatosParaEstado(send, getState)
  }
}

Aquí está un ejemplo sencillo de Hola Mundo:

See the Pen @composi/core + runtime Hola Mundo by Robert Biggs (@rbiggs) on CodePen.