📄 | .gitignore |
📄 | README.md |
📄 | array.js |
📄 | computed.js |
📄 | html-element.js |
📄 | is-observable.js |
📁 | lib |
📄 | map.js |
📄 | package.json |
📄 | resolve.js |
📄 | send.js |
📄 | set.js |
📄 | struct.js |
📁 | test |
📁 | transforms |
📄 | value.js |
📄 | varhash.js |
📄 | watch.js |
README.md
mutant
Create observables and map them to DOM elements. Massively inspired by hyperscript
and observ-*
.
No virtual dom, just direct observable bindings. Unnecessary garbage collection is avoided by using mutable objects instead of blasting immutable junk all over the place.
Current Status: Experimental / Unpublished
Install
npm install @mmckegg/mutant --save
Use
var Struct = require('@mmckegg/mutant/struct')
var send = require('@mmckegg/mutant/send')
var h = require('@mmckegg/mutant/html-element')
var state = Struct({
text: 'Test',
color: 'red',
value: 0
})
var element = h('div.cool', {
classList: ['cool', state.text],
style: {
'background-color': state.color
}
}, [
h('div', [
state.text, ' ', state.value, ' ', h('strong', 'test')
]),
h('div', [
h('button', {
'ev-click': send(state.color.set, 'blue')
}, 'Change color')
])
])
setTimeout(function () {
state.text.set('Another value')
}, 5000)
setInterval(function () {
state.value.set(state.value() + 1)
}, 1000)
setInterval(function () {
// bulk update state
state.set({
text: 'Retrieved from server (not really)',
color: '#FFEECC',
value: 1337
})
}, 10000)
document.body.appendChild(element)
Built with git-ssb-web