VanJS comes with some flavours, thanks to Eckehard and Olivier Monnier
The 'DML' flavour from Eckehard VanDML and the 'HTM' suggested by Olivier.
Here is the example presented by Olivier :
import htm from 'https://unpkg.com/htm?module'
import van from "./van-0.11.10.min.js"
function h(type, props, ...children) {
  const tag = van.tags[type]
  if (props) return tag(props, ...children)
  return tag(...children)
}
const html = htm.bind(h)
const counter = van.state(0)
const app = html`<div>
  ❤️ ${counter}
  <button onclick="${() => ++counter.val}">👍</button>
  <button onclick="${() => --counter.val}">👎</button>
</div>`
document.body.appendChild(app)
You can play with it here VanHTM
Notes than you can mix the flavours, feel free :-)
import htm from 'https://unpkg.com/htm?module'
import van from "./van.js"
const { div, button } = van.tags
function h(type, props, ...children) {
  const tag = van.tags[type]
  if (props) return tag(props, ...children)
  return tag(...children)
}
const html = htm.bind(h)
const counter = van.state(0)
function Incer() {
  return button({onclick:() => ++counter.val}, '👍')
}
function Decer() {
  return button({onclick:() => --counter.val}, '👎')
}
const app = html`
  <div>
    ${div({onclick:() => alert(counter.val)}, '❤️', counter)}
    ${Incer()}
    ${Decer()}
  </div>`
document.body.appendChild(app)
    
Top comments (0)