Aurelia is pretty new compared to some of the other options here and it hasn't had a fast adoption rate from developers. Which unfortunately translates in relatively fewer resources and guides from which to learn the framework.
Components can contain a stylesheet, markup and script in one file. It can even use alternatives/compile-tos: instead of CSS: SASS/Less/Stylus/etc. instead of HTML: Jade/Handlebars/etc. instead of JS: Coffeescript/ES6/Typescript/etc.
Mithril's loading times are very fast. This is because it's templates are compiled first and then served to the browser and because it uses a virtual DOM. The virtual DOM is a virtual tree containing all the nodes of the real DOM, every time anything changes in the virtual DOM, Mithril does
Mithril's small API and small number of functions while helpful for small projects and applications where speed is needed, can add another layer of complexity in larger more complex applications where a more extensive API is needed out of the box.
React can render it's components and data server side, then it sends those components as HTML to the browser. This ensures faster initial loading time and SEO friendliness out of the box, since it's indexed as any other static website by search engines.
While Riot is smaller and more lightweight than other alternatives, it comes at the cost of losing features that with other libraries come out of the box. While these features can be added later when needed by using third-party libraries or by writing your own solutions, in the end you might lose...
A lightweight view class is provided but there is no default templating method implemented. Because views are minimal it allows for much more freedom to implement views however you would like, and because of this freedom it's possible to write views to more uniquely adapt to a problem. User i...
Because many features are not provided out of the box, you either have to write more base class code to get those features, or find a plugin that provides them in a way you like. It does not provide much structure either, things like memory management must be kept in mind by the developer, also t...
Ember already defines the general application structure and organization for you. This was done to prevent developers from making mistakes which would needlessly over-complicate their application. While it's still possible to go out of these practices forced to developers by the Ember authors,...
Ember (and many extensions, like Ember Data) force the implementation down specific architectural paths. These paths are what Ember believes is best practice and typically are fine, but not in all cases. This can occasionally lead to fighting with your framework which is never productive.
Web Components are a collection of specifications released by W3C as a way to reduce the complexity of web apps by creating reusable components. Browser support is currently poor for web components, however Polymer is developed to make web components compatible with modern browsers.
Due to web components being so new, there is still a lot of issues with browser compatibility. Though Polymer has solved some of these compatibility issues with polyfills, there is still a lot of bugs and unpredictability.