Skip to Content
ReactWhat is Virtual DOM?

🧠 Virtual DOM (āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ DOM)


Virtual DOM (V-DOM) āĻšāϞ⧋ āĻŽā§‚āϞ DOM-āĻāϰ (Document Object Model) āĻāĻ•āϟāĻŋ lightweight āĻŦāĻž āĻšāĻžāϞāĻ•āĻž āĻ•āĻĒāĻŋ, āϝāĻž JavaScript āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāϟāĻŋ āĻŽā§‚āϞ DOM-āĻāϰ āĻŽāϤ⧋ āĻĻ⧇āĻ–āϤ⧇ āĻšāϞ⧇āĻ“ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻāϟāĻŋ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āĻšā§Ÿ āύāĻž, āĻŦāϰāĻ‚ āĻāϟāĻŋ āĻŽā§‡āĻŽā§‹āϰāĻŋāϤ⧇ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ UI āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āϏāĻŽā§Ÿ intermediate āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

✅ āϕ⧇āύ Virtual DOM āĻĻāϰāĻ•āĻžāϰ?

āĻŽā§‚āϞ DOM āĻ…āύ⧇āĻ• āĻ­āĻžāϰ⧀āĨ¤ āϝāĻ–āύ UI-āϤ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšā§Ÿ, āϤāĻ–āύ āϏāϰāĻžāϏāϰāĻŋ āĻŽā§‚āϞ DOM āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϞ⧇ performance āĻ–āĻžāϰāĻžāĻĒ āĻšā§Ÿ, āĻ•āĻžāϰāĻŖ:

  • āĻĒ⧁āϰ⧋ DOM āύāϤ⧁āύ āĻ•āϰ⧇ āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āĻšā§Ÿ
  • DOM tree traversal āĻ•āϰāϤ⧇ āĻšā§Ÿ
  • DOM manipulation āĻ¸ā§āϞ⧋ āĻšā§Ÿ

āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞ⧋āϰ āϏāĻŽāĻžāϧāĻžāύ⧇āχ Virtual DOM!

🔁 Virtual DOM āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?

React āĻŦāĻž āĻ…āĻ¨ā§āϝ framework-āĻ Virtual DOM āĻāϰ āĻ•āĻžāĻœā§‡āϰ āϧāĻžāĻĒ:

  1. UI āϤ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻāϞ⧇, āĻĒā§āϰāĻĨāĻŽā§‡ āϏ⧇āϟāĻž Virtual DOM-āĻ reflect āĻšā§ŸāĨ¤
  2. āύāϤ⧁āύ Virtual DOM āĻāĻŦāĻ‚ āĻĒ⧁āϰāĻžāϤāύ Virtual DOM āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ (diffing) āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤
  3. React āĻāϰ Diffing Algorithm āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇, āϕ⧋āύ āĻ…āĻ‚āĻļ āĻŦāĻĻāϞ⧇āϛ⧇āĨ¤
  4. āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻĻāϞāĻžāύ⧋ āĻ…āĻ‚āĻļāϟāĻŋ āĻŽā§‚āϞ DOM-āĻ update āĻšā§ŸāĨ¤

āĻāχ āĻĒ⧁āϰ⧋ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻžāϕ⧇ āĻŦāϞ⧇ ReconciliationāĨ¤

đŸ§Ē āϛ⧋āϟ āωāĻĻāĻžāĻšāϰāĻŖ:

āϧāϰāĻŋ, āĻāĻ•āϟāĻŋ āϟ⧁-āĻĄā§ āϞāĻŋāĻ¸ā§āϟ āφāϛ⧇:

<ul> <li>āϘ⧁āĻŽāĻžāύ⧋</li> <li>āĻĒ⧜āĻžāĻļā§‹āύāĻž</li> </ul>

āĻāĻ–āύ āφāĻĒāύāĻŋ “āϘ⧁āĻŽāĻžāĻ¨ā§‹â€ āĻāϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ “āĻŦā§āϝāĻžā§ŸāĻžāĻŽâ€ āϞāĻŋāĻ–āϞ⧇āύāĨ¤

  1. āĻāχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻĒā§āϰāĻĨāĻŽā§‡ Virtual DOM-āĻ reflect āĻšāĻŦ⧇āĨ¤
  2. Virtual DOM detect āĻ•āϰāĻŦ⧇ āϝ⧇ āĻļ⧁āϧ⧁ āĻĒā§āϰāĻĨāĻŽ <li> āĻŦāĻĻāϞ⧇āϛ⧇āĨ¤
  3. āĻļ⧁āϧ⧁ āϏ⧇āχ <li> āĻŸā§āϝāĻžāĻ—āϟāĻŋ āĻŽā§‚āϞ DOM-āĻ update āĻšāĻŦ⧇āĨ¤

âšĄī¸ āϕ⧀āĻ­āĻžāĻŦ⧇ Performance āĻŦāĻžā§œāĻžā§Ÿ?

  • āĻ•āĻŽ DOM manipulation āĻ•āϰ⧇
  • Batch āĻ•āϰ⧇ DOM update āĻ•āϰ⧇
  • Frequent re-render āĻā§œāĻžā§Ÿ

📌 Virtual DOM āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻžāϏāĻŽā§‚āĻš:

āϏ⧁āĻŦāĻŋāϧāĻžāĻŦā§āϝāĻžāĻ–ā§āϝāĻž
Performance āĻŦ⧃āĻĻā§āϧāĻŋāĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϝ⧇āϟāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āϟāĻžāχ update āĻšā§Ÿ
Efficient renderingāĻĒ⧁āϰ⧋ DOM āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āύāĻž āĻ•āϰ⧇ āĻ…āĻ‚āĻļāĻŦāĻŋāĻļ⧇āώ āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āĻ•āϰ⧇
Developer-friendlyUI update āύāĻŋāĻœā§‡ āύāĻž āĻ•āϰ⧇ React āύāĻŋāĻœā§‡āχ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇
Cross-platform compatibilityBrowser DOM-āĻāϰ āĻ“āĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞāϤāĻž āĻ•āĻŽāĻžā§Ÿ

🧠 āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŽāϤ⧋ āĻ•āĻĨāĻž:

“Virtual DOM āĻšāĻšā§āϛ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻž strategy, āϝ⧇āϟāĻž UI āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϕ⧇ minimum update with maximum performance āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āϰ⧇ āĻĢ⧇āϞ⧇āĨ¤â€

Last updated on