6.13.0 • Published 7 years ago
nanochoo v6.13.0
with npm
> npm install nanochoowith
<script src='//unpkg.com/nanochoo/dist/bundle.min.js'></script>Major and minor version numbers equate to choo's: choo@^7.0 == nanochoo@^7.0. Patch
numbers don't!
Key differences
choo/htmlremoved - use nanohtml (npm install nanohtml) directly- Removed router:
choo()no longer takes anoptsargumentchoo.route(location, handler)replaced bychoo.view(handler)pushState,popState,replaceState,navigateevents removed- nanorouter, nanohref, scroll-to-anchor, nanolocation no longer dependencies
- document-ready no longer a dependency
choo.toStringnot exported in the browser
See choo for documentation - just ignore
routing-related things, use choo.view over choo.route, and you'll be fine.
Example
var html = require('nanohtml')
var choo = require('nanochoo')
var app = choo()
app.use(countStore)
app.view(mainView) // !!!
app.mount('body')
function mainView (state, emit) {
return html`
<body>
<h1>count is ${state.count}</h1>
<button onclick=${onclick}>Increment</button>
</body>
`
function onclick () {
emit('increment', 1)
}
}
function countStore (state, emitter) {
state.count = 0
emitter.on('increment', function (count) {
state.count += count
emitter.emit('render')
})
}