في هذا المثال، قمنا بتعريف عنصر مخصص جديد . داخل مُنشئه، نعلق جذر الظل باستخدام this.attachShadow({ mode: 'open' })، ثم نلحق به بعض المحتوى. يتم عزل الأنماط المحددة ضمن جذر الظل عن بقية المستند.

أوضاع الظل DOM

عند إنشاء جذر ظل، يمكنك تحديد وضعه إما مفتوحًا أو مغلقًا.

مثال على الوضع المغلق

const shadow = this.attachShadow({ mode: \\'closed\\' });

في هذا الوضع، لا يمكن الوصول إلى الظل من خارج المكون، مما يضيف طبقة إضافية من الحماية.

تصميم الظل DOM

يمكنك تحديد الأنماط مباشرةً داخل Shadow DOM. سيتم تطبيق هذه الأنماط فقط على المحتوى الموجود داخل شجرة الظل.

const style = document.createElement(\\'style\\');style.textContent = `    div {        font-size: 20px;        color: red;    }`;shadow.appendChild(style);

من خلال إلحاق عنصر

"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم Shadow DOM: مفتاح مكونات الويب المغلفة

فهم Shadow DOM: مفتاح مكونات الويب المغلفة

تم النشر بتاريخ 2024-11-07
تصفح:720

Understanding Shadow DOM: The Key to Encapsulated Web Components

في تطوير الويب الحديث، يعد إنشاء مكونات قابلة لإعادة الاستخدام وقابلة للصيانة أمرًا ضروريًا. يلعب Shadow DOM، وهو جزء من معيار Web Components، دورًا حاسمًا في تحقيق هذا الهدف. تتعمق هذه المقالة في مفهوم Shadow DOM وفوائده وكيفية استخدامه بفعالية في مشاريعك.

ما هو الظل DOM؟

Shadow DOM هي تقنية تسمح لك بتغليف جزء من DOM وCSS داخل مكون الويب، مما يضمن عزله عن بقية المستند. يمنع هذا التغليف الأنماط والبرامج النصية من التسرب للداخل أو للخارج، مما يسهل إنشاء مكونات معيارية وقابلة للصيانة.

المفاهيم الأساسية لـ Shadow DOM

  1. شجرة الظل: شجرة DOM مخفية منفصلة متصلة بمكون ويب.
  2. جذر الظل: العقدة الجذرية لشجرة الظل.
  3. Shadow Host: عنصر DOM العادي الذي يستضيف شجرة الظل.
  4. حدود الظل: الحد بين شجرة الظل وDOM العادي.

فوائد الظل DOM

1. التغليف

يوفر Shadow DOM فصلًا نظيفًا بين البنية الداخلية للمكون وبقية التطبيق. يساعد هذا التغليف على منع تعارض الأنماط والسلوكيات، مما يجعل مكوناتك أكثر قابلية للتنبؤ بها وأسهل في الصيانة.

2. عزل الأسلوب

باستخدام Shadow DOM، يمكنك تحديد الأنماط التي تنطبق فقط على المحتوى الموجود داخل شجرة الظل. يضمن هذا العزل أن أنماط المكون الخاص بك لا تؤثر على بقية الصفحة، والعكس صحيح.

3. تعزيز إمكانية إعادة الاستخدام

المكونات المغلفة أكثر قابلية لإعادة الاستخدام لأنها قائمة بذاتها. يمكنك بسهولة مشاركة هذه المكونات واستخدامها عبر مشاريع مختلفة دون القلق بشأن مشكلات التكامل.

إنشاء ظل DOM

دعونا نلقي نظرة على مثال بسيط لإنشاء Shadow DOM في JavaScript.



    
    
    Shadow DOM Example


    

    


في هذا المثال، قمنا بتعريف عنصر مخصص جديد . داخل مُنشئه، نعلق جذر الظل باستخدام this.attachShadow({ mode: 'open' })، ثم نلحق به بعض المحتوى. يتم عزل الأنماط المحددة ضمن جذر الظل عن بقية المستند.

أوضاع الظل DOM

عند إنشاء جذر ظل، يمكنك تحديد وضعه إما مفتوحًا أو مغلقًا.

  • الوضع المفتوح: يمكن الوصول إلى جذر الظل باستخدام JavaScript، مما يسمح بالتفاعل والتلاعب.
  • الوضع المغلق: لا يمكن الوصول إلى جذر الظل من JavaScript، مما يوفر مستوى أعلى من التغليف.

مثال على الوضع المغلق

const shadow = this.attachShadow({ mode: 'closed' });

في هذا الوضع، لا يمكن الوصول إلى الظل من خارج المكون، مما يضيف طبقة إضافية من الحماية.

تصميم الظل DOM

يمكنك تحديد الأنماط مباشرةً داخل Shadow DOM. سيتم تطبيق هذه الأنماط فقط على المحتوى الموجود داخل شجرة الظل.

const style = document.createElement('style');
style.textContent = `
    div {
        font-size: 20px;
        color: red;
    }
`;
shadow.appendChild(style);

من خلال إلحاق عنصر

خاتمة

Shadow DOM هي ميزة قوية تعمل على تحسين الطريقة التي نبني بها مكونات الويب من خلال توفير التغليف وعزل النمط. من خلال الاستفادة من Shadow DOM، يمكن للمطورين إنشاء مكونات معيارية وقابلة لإعادة الاستخدام وقابلة للصيانة وتتكامل بسلاسة مع أي تطبيق ويب. يعد فهم Shadow DOM واستخدامه مهارة قيمة لأي مطور ويب حديث.

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/mdhassanpatwary/understanding-shadow-som-the-key-to-encaptive-web-components-4bki؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3