how react updates the dom