tl;dr;
Author used Vue and was happy, trying to learn internal of it and Preact then merged & crafted them into Moon. With API of Vue, speed of Preact (according to claims in the article, it's faster than Preact)
I'm interested to know how you see it compares with Riot.js which I've been using for a while now?
Also is the codev for the example apps available. I can't see it on Github.
Looks promising. Now the ecosystem around it just has to grow :)
I like that you have chosen the simple and explicit set-/get-method approach over the "convert data into some magical thing with non standard arrays and stuff"-way.
Let me try to convince you then ;)
* Moon is first of all, blazing fast compared to the competition
* Moon has a built-in:
* templating engine
* component system
* directives
* There are lightweight packages for routing and SSR
* You can have single-file components (just like Vue)
* Moon does this all in about 6kb minified + gzipped
Glad you might try it out :D
I think you SHOULD care about the sizes of libraries these days. The extra weight can really slow down a page. That 6kb and 25kb difference results in a 21.8ms load time (for the 25kb library), and 8ms for Moon.
This increases with the amount of plugins you add. Moon-router is 1kb, Vue-router is bigger than Moon itself!
Actually, Moon DOES have a dependency tracker, and caches the values of computed properties. Instead of simple getters/setters (which can be added with a plugin), Moon provides simple method with `.get` and `.set`. Along with that, it has all of the core directives, the same component system, the same plugin system. All in 6kb minified+gzipped, with faster performance.
There is no mention of computed properties in the docs, should we use getter for that ? It seems to work: http://jsbin.com/vihawiziza/edit?html,css,js,output
I really like getters/setters or proxy interfaces for data handling, it has several benefits regarding autocompletion, type checking and the handling of specific mutations like array splice. This is what sold me with Vue in the first place
Yeah, the docs don't mention a couple things (yet). Check out http://jsbin.com/sosunuvuwi/edit?html,css,js,output for an example on computed properties.
The getters/setters added have an overhead and slow down the startup time of an application. I'm working on a simple plugin that can add them though, along with the array methods :)