Pretty much. It's similar in spirit to reactive programming if you think of a component as exposing a Signal<Virtual DOM> that the renderer subscribes to. Also, the Signal<Virtual DOM> depends on a Signal<Props> and a Signal<State>. And the Signal<Props>, in turn, depends on the component owner's Signal<Virtual DOM>.
You also have control over whether the render() method is called by substituting your own diff function (shouldComponentUpdate).
You also have control over whether the render() method is called by substituting your own diff function (shouldComponentUpdate).