AM
you need to store in memory a huge document and each time search in it for changes. It's not true, because it do not store whole VDOM in memory forever. On each render (setState() call) it make lightweight DOM representation and efficiently compare it with real DOM. Then after render garbage collector remove VDOM from memory. The main profit in VDOM: it do efficient DOM patches. Second profit is scheduling DOM updates. First DOM render will be slow as innerHTML. Why you think modern browsers are not doing a lot of optimization already. We have legacy and mobile browsers that can't do work effectively.