If you guys liked vue, you will absolutely love riot.js. It's so simple and minimal that I only had to look at their docs for a couple minutes and I was on my way. In this day and age where client side frameworks are overly obese , riot was afresh air. I like it more than any other frameworks out there.
I switched from Riot to Vue, and am glad I made the change.
Biggest things I noticed:
1) Getting stared with the basics is about equally easy in both frameworks. Both have a very simple and clean API and component system.
2) Vue has more advanced features -- dynamic components, easy two-way binding, watching variables, custom events, routing, etc, all of which I have used at some point as my app has gotten bigger
3) Riot seems to have more open bugs, including one major issue where even when an "if" statement evaluates as false in a template, the component still gets processed. This is supposed to be fixed in the next big release, but who knows when that will be.
4) Vue seems to be much more active -- more users, more commits, so I think it is a better long term bet.
Really? I couldn't even figure out how to get started with Riot. Vue's Guide walks you step-by-step from scratch how to get up and running. It also has a section on how to structure larger apps once you understand the basics. Riot's Guide is a topic overview. I had to find tutorials outside the main site.
I think it's fast, fast enough to not have to worry about. OTOH, Angular with it's 2-way bindings gave me ton of performance problems in the past, so if anything, I would say that 1-way binding frameworks (riot/react) will be much more performant on a real world project.
The way Angular 1 and Vue.js 1 implement 2-way binding is very different (dirty checking vs getters-setters), which is why Vue.js 1 implementation doesn't have performance issues.
I'd say that if Vue.js is like Rails, then Riot.js is like Sinatra. It's an even more simplified version. For one, Riot doesn't include 2-way binding, which is how I like it, since I like having more control over the DOM of when and how to update it. Also the syntaxes are cleaner and less verbose. I also appreciate it's style of creating and mounting components.
Vue.js 2 doesn't include 2-way binding. As for syntax, I don't see what you're seeing by looking at the docs. And in Vue you can also create and mount components.
EDIT: I realized after posting this comment that 2-way binding has only partially gone away, v-model still works, it was prop syncing that was deprecated.