I don't think of something as React-like just because it puts HTML and JS in the same file or combines HTML tags with blocks of JS code.
The difference between React and other databinding methods is that you can use all JS language features (i.e. if, for, while, .filter(), .map(), libraries like Rx.js, etc.) when defining what you want your DOM to look like.
Suppose I want to have a list of items based on some array, which I want to filter based on some predicate, and display the items differently based on their content type.
In a React render() function I would just use
filter( (it) => { //some predicate } )
to filter unwanted items, and
map((it) => { switch (it.contentType) { // cases } })
to map the individual items to how I want them to look like.
To me it looks like to implement something like this in Riot would require to build / use something that is more like Angular's computed properties.
But I'd like to be proven wrong.