@composi/core:

Instalación

Composi/core es Pequeño

Cuando instalas @composi/core solo estás agregando 2KB al JavaScript de su proyecto final. Eso significa que el JavaScript de una aplicación Hola Mundo será de solo 2 KB. El tamaño pequeño de Composi significa que se carga rápidamente, incluso en teléfonos viejos con conexiones deficientes. A pesar de su tamaño, @composi/core ofrece una gran cantidad de funciones para crear aplicaciones complejas y potentes. Esto significa que la mayor parte del JavaScript en tu proyecto deberá ser el código que escribiste, y no lo de las bibliotecas. En el mundo de los celulares, lo pequeño es útil.

No Hay que Instalar

La mejor manera de comenzar a utilizar @composi/core es crear un nuevo proyecto con @composi/ reate-composi-app. Lea la documentación de create-composi-app para aprender cómo empezar rápidamente.

Para usar @composi/core, necesitas importarlo. Un proyecto creado con @composi/ reate-composi-app ya tiene un archivo-app.js-con el núcleo importado: h y render. Pero si creas un nuevo archivo para un componente que utiliza JSX, tendrás que importar la función h de @composi/core.

import { h } from '@composi/core'
// Define el componente aquí:

Si vas a crear un módulo que no utiliza JSX, entonces no hay porqué importar la función h.

Una vez que haya creado un nuevo proyecto con @composi/create-composi-app, lea sobre render y otra documentación en esta sección para aprender cómo usar @composi/core.

En el Navegador

Puedes usar @composi/core en el navegador sin instalación ni compilación. Tan sólo incluyes las versiones de distribución con una etiqueta de script::

<script src='https://unpkg.com/@composi/core@latest/dist/composi.js'></script>
<script src='https://unpkg.com/@composi/datastore@latest/dist/datastore.js'></script>
<script src='https://unpkg.com/@composi/fragment@latest/dist/fragment.js'></script>
<script>
  const { h, render } = composi
  const { DataStore } = datastore
  // No hay que captar Fragment en un variable ya que es un global.

  function ÍtemesDeLista(data) {
    return (
      Fragment(
        null,
        {
          data.map(ítem => h('ul', {}, ítem))
        }
      )
    )
  }
  const cosas = ['Manzanas', 'Zapatos', 'Computadoras']
  function Lista(data) {
    return (
      h('ul', {class: 'lista'}, ÍtemesDeLista(data))
    )
  }
  render(Lista(cosas), 'body')
</script>

Cuando importas Composi de esta manera, no puedes usar JSX sino tienes que usr la función h para definir el marcado.