As far as component libraries that start from HTML, I think Marko has the best syntax. Attributes are always parsed as JS expressions, for example. There's still some quirks, but overall it's pretty nice. https://markojs.com/docs/syntax/
There are some benefits from just embracing JavaScript though, especially, as you mention, integration with things like TypeScript.
That attribute syntax is awesome! I've found VueJS's handling of attributes to be somewhat confusing, sometimes getting a different type passed through than I was expecting. Marko takes the approach that would least confuse.
Re:How we do Vue: one year later (2017)
by enraged_camel on Monday March 18, 2019 @08:52PM
(#19427020)
>>Irrespective of that, these days I am hard pressed to not use typed JS in some form or fashion anyways.
What do you mean by "anyways"? I use TypeScript with Vue and it's great.
Despite whatever framework I use, I believe adding types improves it and reduces bugs, Vue included. (These days I'm favoring ReasonML and that skews me to React, but I believe Vue.js is also available on Bucklescript)
Vue relies too much on overloading the string type for my taste (fundamentally, all JS libs do this to some extent). Too much magic happens with these string-based v-bindings.
Irrespective of that, these days I am hard pressed to not use typed JS in some form or fashion anyways.