JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 17
  • Score
    100M100P100Q29330F
  • License MIT

A tiny library for component based UIs

Package Exports

  • xou

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xou) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

A tiny library for building simple component based UIs with template literals. It offers the same features as yo-yo but is a bit smaller.

Xou is powered by hyperx and nanomorph.

Features

  • Tagged template literals
  • Diffing on real dom nodes
  • Tiny at just 4kb

Install

$ npm install xou

Usage

const xou = require('xou');

const time = xou`<span>Time: ${ (new Date()).toUTCString() }</span>`;

document.body.appendChild(time);

setInterval(() => {
  const newTime = xou`<span>Time: ${ (new Date()).toUTCString() }</span>`;
  xou.update(time, newTime);
}, 1000);

API

xou``

A tagged template literal returning dom nodes

Example

const node = xou`<div>
  <h1>Hello from xou</h1>
  <p>Xou on <a href="https://github.com/herber/xou">github</a></p>
</div>`;

document.body.appendChild(node);

xou.update(oldNode, newNode)

xou.update diffs an old and a new dom node. The changes will be applied to oldNode.

Example

const hello = xou`<span>Hello!<button onclick=${ () => { update(); } }>Update</button></span>`;

const update = () => {
  const hi = xou`<span>Hi!</span>`;
  xou.update(hello, hi);
}

document.body.appendChild(hello);

Other Modules

This whole thing is powered by hyperx and nanomorph - two tiny but really great packages.

This module is heavily inspired by yo-yo - xou is basically a smaller alternative to yo-yo.

Xou pairs really well with vxv for styles and nation for state management.

License

MIT © Tobias Herber