pooria vakili
pooria vakili
خواندن ۴ دقیقه·۲ ماه پیش

فرق virtual dom , shadow dom در جاوااسکریپت

اگر مفهوم shadow dom متوجه بشوید فرق react با vue.js متوجه می شویدوچرا react virtual dom ولی shadow dom نیست

در ,vue js ,react این طوری است


به این مفهوم virtual dom میگویند ولی در ویو جی اس شما با دو حالت در ارتباطید یکی virtual dom shadow dom حالت دوم در مفهوم در ویوجی اس به نام teleport که اینطوری که در کامپونت ها استفاده می کنید به عنوان مثال


در react شما با state set state یا use state کار میکنید ولی در ویوجی اس برای مفهوم virtual dom با v-model data یا ref کار می کنید


در واقع در react برای این که کارهای dom انجام می دهیم با jsx کار میکنیم.


مفهوم virtual dom در یک عکس


مفهوم shadow dom در یک عکس


مفهوم slot در vue.js


what virtualdom?

در virtual dom در JavaScript و React یک مفهوم مهم است که عملکرد و کارایی برنامه‌های کاربردی را بهبود می‌بخشد. من به شما مفاهیمی از Virtual DOM ارائه می‌دهم:

تعریف Virtual DOM

در virtualdom یک مدل مجازی از DOM (Document Object Model) است که در حافظه سیستم ذخیره می‌شود این مدل یک نمای دقیق از ساختار و وضعیت DOM واقعی است

مزایای استفاده از Virtual DOM

کارایی بالا:

    • تغییرات در Virtual DOM بسیار سریع‌تر از تغییرات در DOM واقعی انجام می‌شود .
    • این امر بهینه‌سازی فرآیند آپدیت و بهینه‌سازی منابع سیستم کمک می‌کند.

کاهش عملیات DOM:

    • تنها تغییرات ضروری در DOM واقعی اعمال می‌شوند،

سازگاری با API های اتی:

    • در virtual domاجازه می‌دهد از API‌های اتی React استفاده کنیم

نحوه کارکرد Virtual DOM

ایجاد:

    • هر بار که حالت برنامه تغییر کند، Virtual DOM به روز می‌شود .

تطبیق:

    • در react virtualdomرا با DOM واقعی تطبیق می‌دهد .

آپدیت:

    • تنها تغییرات لازم در DOM واقعی اعمال می‌شوند .

تفاوت Virtual DOM با DOM واقعی

  • در virtualdom یک مدل مجازی است که در حافظه ذخیره می‌شود
  • در Dom واقعی مدل واقعی ساختار وب است که توسط مرورگر‌ها مدیریت می‌شود

اهمیت در React

  • در virtualdomبه React اجازه می‌دهد یک API اتی را ارائه دهد
  • این مفهوم بهینه‌سازی فرآیند آپدیت و بهینه‌سازی منابع سیستم را ممکن می‌سازد .

نکات مهم

  • در virtual domیک مفهوم کلی است که توسط کتابخانه‌های مختلفی مانند ReactDOM پیاده‌سازی می‌شود
  • در React، Virtual DOM با عناصر React (React elements) مرتبط است

درReact از اشیاء داخلی دیگر مانند "fibers" نیز برای ذخیره اطلاعات اضافی درخت کامپوننتی استفاده می‌کند

نتیجه‌گیری

در virtual domیک مفهوم کلیدی در توسعه برنامه‌های کاربردی مدرن است. این مفهوم بهینه‌سازی کارایی و کارایی برنامه‌ها را فراهم می‌کند و اجازه می‌دهد از API‌های اتی استفاده کنیم. در زمینه React، Virtual DOM نقش مهمی در ساختار و عملکرد کامپوننتی‌ها ایفا می‌کند.

در (Shadow DOM) در جاوااسکریپت یک مفهوم مهم در توسعه وب است که به طور خاص در وب کامپوننت‌ها کاربرد دارد. من به شما مفاهیمی از Shadow DOM ارائه می‌دهم:

تعریف Shadow DOM

در یک زیر درخت DOM خصوصی است که درون یک عنصر وب کامپوننتی وجود دارد. این زیر درخت از نظر DOM اصلی مستقل است و فقط توسط مرورگر قابل دسترسی است .

مزایای استفاده از Shadow DOM

  1. انکپسولاسیون: Shadow DOM اجازه می‌دهد جزئیات اجرای داخلی یک عنصر را از بقیه صفحه پنهان کند .
  2. عملکرد بالا: این تکنیک بهینه‌سازی فرآیند رندرینگ پیچیده‌های UI را ممکن می‌سازد .
  3. امنیت: سطحی از جدایی بین بخش‌های مختلف یک صفحه وب فراهم می‌کند .

نحوه کارکرد Shadow DOM

  1. پیاده‌سازی مرورگر: مرورگرها Shadow DOM را برای ایجاد عناصر وب و رابط‌های کاربری مرتبط استفاده می‌کنند .
  2. جدایی: Shadow DOM یک حاشیه بین DOM عمومی و جزئیات اجرای داخلی ایجاد می‌کند .
  3. رندرینگ خصوصی: این زیر درخت DOM خصوصی به طور مجزا از DOM اصلی رندر می‌شود .

مزایای Shadow DOM

  1. مدیریت سبک: CSS خاص خود را دارند که نمی‌توانند توسط انتخاب‌کنندگان خارجی دستکاری شوند
  2. امنیت: به اندازه کافی امن است تاجزئیات اجرای داخلی را پنهان کند

محدودیت‌ها

  1. دسترسی محدود: استاندارد DOM API‌ها نمی‌توانند به عناصر درون Shadow DOM دسترسی پیدا کنند
  2. محدوده مرورگر: تنها مرورگرهایی که پشتیبانی از Web Components را دارند، Shadow DOM را پشتیبانی می‌کنند .

در (Shadow DOM) و (Virtual DOM) دو مفهوم مهم در توسعه وب هستند که هر کدام وظایف و مزایای دارند. من به شما تفاوتی بین این دو ارائه می‌دهم:

هدف

: برای بهبود عملکرد توسط کاهش تعداد عملیات DOM مورد نیاز در هنگام بهینه‌سازی طراحی شده است

  • بر اساس مفهوم انکپسولاسیون طراحی شده است و محیطی محدود برای CSS و JavaScript فراهم می‌کند

نحوه کارکرد

  • یک مدل مجازی کامل از DOM واقعی است که در حافظه ذخیره می‌شود .
  • یک زیر درخت DOM خصوصی درون یک عنصر وب کامپوننتی ایجاد می‌کند .

مزایای

  • بهینه‌سازی فرآیند آپدیت و بهینه‌سازی منابع سیستم را ممکن می‌سازد

محدوده کاربرد

  • توسط کتابخانه‌های JavaScript مانند React و Vue.js پیاده‌سازی می‌شود
  • توسط مرورگرها پیاده‌سازی می‌شود و بخشی از استاندارد Web Components است

منابع

chatgpt

https://www.freecodecamp.org/news/virtual-dom-vs-shadow-dom/

virtual domshadow domjavascripthtmlcss
front-end developer
شاید از این پست‌ها خوشتان بیاید