0Pricing
Angular Academy · درس

رموز الحقن

احقنوا قيمًا غير الفئات باستخدام الرموز

رموز الحقن درس مجاني في Angular Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Angular Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Angular Academy 4 دروس في المجموع.

رموز الحقن

ليست كل التبعيات فئات. ولحقن قيم مثل كائنات التهيئة أو السلاسل النصية أو الواجهات، تستخدمون InjectionToken بوصفه مفتاحًا فريدًا.

لماذا نستخدم الرموز؟

يمكن استخدام الفئات مباشرةً كمفاتيح لـ DI، لكن لا يمكن استخدام الواجهات والقيم الأولية، لأن الواجهات تختفي أثناء التشغيل. يوفر InjectionToken مفتاحًا ثابتًا ومحدد النوع لهذه الحالات.

إنشاء رمز

أنشئوا رمزًا باستخدام new InjectionToken<T>، مع تمرير وصف مقروء للبشر.

import { InjectionToken } from '@angular/core';

export const API_URL = new InjectionToken<string>('API_URL');

معامل النوع

يمنح معامل النوع العام، وهو string هنا، الرمز نوعًا محددًا، بحيث تكون القيم المحقونة محددة النوع على نحو صحيح.

توفير قيمة رمز

سجّلوا الرمز مع قيمة باستخدام useValue في مصفوفة providers.

// bootstrapApplication(AppComponent, {
//   providers: [{ provide: API_URL, useValue: 'https://api.example.com' }]
// });

حقن رمز

احقنوا الرمز باستخدام دالة inject للحصول على قيمته.

import { inject } from '@angular/core';
import { API_URL } from './tokens';

export class Api {
  private baseUrl = inject(API_URL);
}

رموز التهيئة

من الاستخدامات الشائعة تهيئة التطبيق: عرّفوا واجهة، وأنشئوا رمزًا محدد النوع بها، ثم وفّروا كائن تهيئة.

export interface AppConfig { title: string; retries: number; }
export const APP_CONFIG = new InjectionToken<AppConfig>('APP_CONFIG');

توفير التهيئة

بعد ذلك، وفّروا قيمة التهيئة عند التمهيد.

// providers: [{ provide: APP_CONFIG, useValue: { title: 'My App', retries: 3 } }]

القيم الافتراضية للمصنع

يمكن للرمز توفير قيمة افتراضية عبر مصنع في خياراته، بحيث يعمل حتى من دون مزوّد صريح.

export const RETRIES = new InjectionToken<number>('RETRIES', {
  providedIn: 'root',
  factory: () => 3
});

الرموز مقابل الفئات

استخدموا فئةً كمفتاح عندما تكون التبعية فئة خدمة. واستخدموا InjectionToken عند حقن قيم ليست فئات: مثل التهيئات أو القيم الأولية أو الكائنات ذات الأنواع المستندة إلى الواجهات.

تجنب السلاسل النصية السحرية

تستبدل InjectionTokens مفاتيح السلاسل النصية الهشة بمعرّفات محددة النوع وخالية من التصادم، فتكتشف الأخطاء أثناء الترجمة.

تحقّق سريع: الرموز

حقن قيم ليست فئات.

مراجعة: رموز الحقن

تعلّمتم أن InjectionToken يوفر مفاتيح محددة النوع لحقن قيم ليست فئات، مثل كائنات التهيئة والسلاسل النصية والبيانات ذات الأنواع المستندة إلى الواجهات. أنشئوا رمزًا باستخدام new InjectionToken، ووفّروه باستخدام useValue أو قيمة افتراضية لمصنع، ثم احقنوه باستخدام inject(). لقد أتممتم دورة حقن التبعيات.

الأسئلة الشائعة

هل درس «رموز الحقن» مجاني؟

نعم — نص درس «رموز الحقن» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Angular Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Angular Academy 4 دروس في المجموع.

ماذا ستتعلم في «رموز الحقن»؟

احقنوا قيمًا غير الفئات باستخدام الرموز تتمرن على Angular Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Angular Academy؟

لا تُشترط خبرة سابقة. Angular Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «رموز الحقن»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Angular Academy هذا؟

نعم. كل درس في Angular Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الخدمات وInjectable
  2. الدالة inject
  3. الموفّرون والنطاقات
  4. رموز الحقن
← العودة إلى Angular Academy