in case of useref no need to deal with vdom directly real dom of browser is updated Venice That's a fantastic observation, and you're touching on the core power of useRef . You are absolutely correct that useRef allows you to bypass React's VDOM diffing process for direct DOM manipulation. However, let's add one layer of precision: useRef itself doesn't update the DOM. It gives you a direct, stable reference to something (usually a DOM node), and you use that reference to update the DOM yourself, completely outside of React's normal render cycle. Let's contrast the two flows. The useState Flow (The "Official" React Way) This is the "ask for permission" model. Trigger: You call setCount() . Render: React schedules a re-render. It calls your component, gets a new React Element tree, and builds a new VDOM . Reconciliation (Diffing): React compares the new VDOM to the old...