Skip to content

Instantly share code, notes, and snippets.

@jongacnik
Last active November 23, 2017 20:21
Show Gist options
  • Save jongacnik/28005d951a7347fb652eab669c5ffa1e to your computer and use it in GitHub Desktop.
Save jongacnik/28005d951a7347fb652eab669c5ffa1e to your computer and use it in GitHub Desktop.
choop - component
var choop = require('choop')
var html = require('choop/html')
var h = require('choop/h')
var Component = require('choop/component')
var devtools = require('choo-devtools')
var app = choop()
app.use(devtools())
app.route('*', mainView)
app.mount('body')
class ClickMe extends Component {
constructor () {
super()
this.state = { n: 0 }
this.handleClick = () => {
this.setState({ n: this.state.n + 1 })
}
}
render (props, state) {
return html`
<div>
<h1>clicked ${state.n} times</h1>
<button onClick=${this.handleClick}>click me!</button>
</div>
`
}
}
function mainView (state, emit) {
return html`
<main>
${h(ClickMe)}
${h(ClickMe)}
${h(ClickMe)}
</main>
`
}
{
"dependencies": {
"choop": "3.0.0",
"choo-devtools": "2.2.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment