Hi all. I've been reading to get caught up, so if what I say sounds strange it's probably because I haven't quite succeeded. Here goes:
Long version - Every React component provides a render function that generates the HTML fresh when it is called. These Render functions make the calls that construct the child elements of the component on the fly, and typically contain decision logic that determines which children, if any, are constructed. Best practices in Render is to have a single root component (the Scene in our world) who's render function creates the next level down, which in turn creates the next level down, and so on generating a very dynamic HTML representation of the DOM. This is a powerful approach. Routing, for example, is handled by an easy-to-read switch/case structure in the root component's render function.
The HTML that is generated is not sent to the browser for rendering. Instead, the React engine compares compares the most recent HTML with the last generated HTML to identify differences. These differences are sent to the browser as DOM-manipulation calls. I believe the React system runs all the HTML-generating Components in web workers so that only the DOM and DOM manipulation logic runs the main thread. This is what makes React so performant.
So the bottom line isn't that I want to integrate Infamous with the React framework, though that might be a very smart idea to be discussed in another thread. I'm proposing that we follow the React pattern and keep all state information local in the developer's code. After two weeks of getting up to speed on React I don't see any advantage to providing DOM query or manipulation at all.