نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
AN

منهج Angular

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Angular /استخدام مكون مستقل بدلاً من NgModules

استخدام مكون مستقل بدلاً من NgModules

تشغيل أنجولرBootstrapping Standaloneإلغاء NgModulesاستبدالAngular 22.1 Architecture

جدول مرجعي سريع

1
استراتيجية العزلطريقة العمل والآلية الداخليةالتأثير على التطبيق والملفات
Emulated (الافتراضية)يقوم أنجولر بإنشاء سمات فريدة وإضافتها لعناصر الـ HTML وتقييد محددات الـ CSS بهاتطبق التنسيقات على المكون الحالي فقط دون التأثير على المكونات الأخرى
ShadowDomيعتمد كلياً على تقنية متصفح الويب الأصلية Shadow DOM لعزل الواجهة بشكل تاميوفر عزلاً حققيقياً وقوياً جداً ولكنه قد يتسبب في بعض المشاكل مع مكتبات التنسيق الخارجية
Noneيلغي العزل تماماً ويحول كود الـ CSS الخاص بالمكون إلى تنسيقات عامةيؤثر على صفحة الويب بأكملها ويُستخدم بحذر شديد

الشرح

متابعةً للمسار التعليمي لفصل المكونات المستقلة الموضح في الصورة المرفقة سابقاً، نصل إلى الدرس السادس والذي يمثل النقطة الفاصلة في هيكلية التطبيق: كيفية تشغيل تطبيق أنجولر بالكامل دون استخدام وحدات (NgModules). في الإصدارات الحديثة Angular 22.1، تم الاستغناء نهائياً عن ملف app.module.ts التقليدي، وأصبح الملف الجذري main.ts يعتمد على دالة بسيطة ومباشرة تسمى bootstrapApplication لتشغيل أول مكون مستقل في التطبيق.

تفصيل آليات التنسيق في المكونات

العزل الافتراضي (Emulated Encapsulation):

بشكل افتراضي، لا تحتاج لفعل أي شيء معقد؛ فأنجولر يقوم تلقائياً بإضافة وسم فريد (مثل _ngcontent-abc-c12) لكل عنصر في المكون، ويعدل قواعد الـ CSS لترتبط بهذا الوسم حصرياً. هذا يتيح لك استخدام نفس أسماء الكلاسات (مثل .card أو .btn) في مكونات مختلفة دون خوف من تداخل التصاميم.

التحكم في استراتيجية العزل:

إذا أردت تغيير طريقة العزل الافتراضية، يمكنك استخدام خاصية encapsulation داخل المزخرف @Component وتمرير الاستراتيجية المناسبة لاحتياجات مشروعك.

أمثلة برمجية: تطبيق وتحكم في الأنماط

المثال الأول: تنسيق محلي افتراضي (Local Styling)

هذا هو النمط القياسي والمفضل في Angular 22.1. الأنماط هنا لا تؤثر إلا على هذا المكون فقط:

typescript
1import { Component } from '@angular/core';
2
3@Component({
4 selector: 'app-user-badge',
5 standalone: true,
6 template: `
7 <div class="badge-box">
8 <span>مستخدم مميز</span>
9 </div>
10 `,
11 // التنسيق هنا معزول ولن يتسرب للخارج
12 styles: `
13 .badge-box {
14 background-color: #e3f2fd;
15 color: #0d47a1;
16 padding: 8px 16px;
17 border-radius: 20px;
18 display: inline-block;
19 }
20 `
21})
22export class UserBadgeComponent {}

المثال الثاني: تغيير استراتيجية العزل إلى None

اذا كنت تريد أن تؤثر تنسيقات هذا المكون على باقي التطبيق (تنسيقات عامة):

typescript
1import { Component, ViewEncapsulation } from '@angular/core';
2
3@Component({
4 selector: 'app-global-styles-injector',
5 standalone: true,
6 template: `<p>هذا النص سيتاثر بالتنسيق العام.</p>`,
7 styles: `
8 p {
9 font-size: 18px;
10 color: #d32f2f;
11 }
12 `,
13 // إلغاء العزل لتصبح الأنماط عامة
14 encapsulation: ViewEncapsulation.None
15})
16export class GlobalStylesInjectorComponent {}

نصائح احترافية

  • —تجنب استخدام ViewEncapsulation.None إلا للضرورة القصوى!
  • —كسر عزل الأنماط قد يعيدنا إلى مشاكل تداخل الـ CSS القديمة التي عانى منها المطورون لسنوات. إذا كنت بحاجة إلى تنسيقات عامة على مستوى التطبيق بالكامل، فالأفضل دائماً وضعها في ملف التنسيق الرئيسي (styles.scss) الموجود في جذر المشروع، وليس من خلال المكونات الفردية.

الدرس السابق

كيفية استيراد المكونات والمكتبات داخل المكون المستقل

الدرس التالي

تنسيق المكونات وعزل الأنماط

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر