homly.js

Web Components con reactividad por señales. Vanilla JS, cero dependencias y sin paso de build: corre directo en el navegador.

Instalación

No hay nada que instalar. Un import map y ya:

<script type="importmap">
{ "imports": { "homly": "https://cdn.jsdelivr.net/gh/softronicve/[email protected]/homly.js" } }
</script>
import { HomlyComponent, Homly } from 'homly';

class Contador extends HomlyComponent {
  get basePath()    { return import.meta.url; }
  get templateUrl() { return './contador.html'; }
  get styleUrl()    { return './contador.css'; }

  get store()   { return (this._store ??= Homly.createStore({ n: 0 })); }
  get actions() { return { sumar: () => { this.store.state.n++; } }; }
}

customElements.define('mi-contador', Contador);
<!-- contador.html -->
<button data-action="sumar">+1</button>
<span data-bind="n"></span>

Las directivas

El DOM se enlaza con atributos data-*. Este buscador está hecho con homly:

Es una isla real: data-model para el input, una computed para filtrar y data-for para la lista. El filtro vive en la URL —prueba /?q=bind— así un resultado se puede compartir por enlace. Todo lo demás de esta página es HTML entregado por el servidor.

Por qué

Documentación

La referencia completa —directivas, store.resource, rutas con parámetros, filtros en la URL y el logger de desarrollo— está en el README del repositorio.