Virtual DOM is not inherently an issue. Many libraries use it and are much faster than React.
The main issue is React forces you to tell it which components to re-render. This causes a bloat of ceremony that makes it endlessly annoying (in comparison to global redraws) to write in.
> React forces you to tell it which components to re-render
That's a really weird statement, do you keep your application state in a mutable data structure instead of immutable? Do you know what a pure component is?