3 ms·
browser vendors need to do this. we need a standardized declarative dom patching mechanism with data-binding that has optimal perf so we dont need to keep reim
by leeoniya 9y ago
browser vendors need to do this.
we need a standardized declarative dom patching mechanism with data-binding that has optimal perf so we dont need to keep reimplementing virtual-dom.
- spankalee 9y agoOver in Polymer, we're exploring ways to do exactly that: https://github.com/PolymerLabs/lit-html https://github.com/PolymerLabs/lit-html Template literals in JS give us a way to always tell the static from dynamic parts of a template. HTML <template> elements let us stamp out pre-defined trees of DOM quickly. Combined we can then only update the dynamic parts without a virtual DOM.
- leeoniya 9y agowere you aware of https://github.com/trueadm/t7 https://github.com/trueadm/t7 when you started? are there advantages over t7, other than NIH?
- spankalee 9y agoT7 is quite a bit larger than lit-html, and requires a vdom reconciler still. lit-html is self-contained and < 2k minified and gzipped. I also didn't want to use vdom because it doesn't encode whether nodes are static or dynamic, and even static sections are diffed. That's extremely important feature for performance and memory overhead, which is why I'm happy to see that emphasized in Moon. Also, coming from the Polymer team, where we've had a lot of success using <template> elements to stamp out large pre-defined DOM trees, I wanted a system backed by those.
- leeoniya 9y agothanks for the details.
- allover 9y agoAlso see hyperHTML [1] which is same idea, but predates lit by some months. Comparison here [2]. [1] https://github.com/WebReflection/hyperHTML https://github.com/WebReflection/hyperHTML [2] https://gist.github.com/WebReflection/fadcc419f5ccaae92bc167d8ff5c611b https://gist.github.com/WebReflection/fadcc419f5ccaae92bc167...