محتوى مشروعنا سيكون بالشكل التالي
لنبدأ بالملف الأسهل
الملف index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>myApp</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>
الملف تقريبا مفهوم فهو مجرد صفحة html ولايحتوي سوى على هده التعليمة الغريبة والغير مفهومة
<app-root></app-root>
باختصار شديد خلينا نقول أن هذا الوسم عبارة عن المكان الذي سيضع فيه الـ angular المحتوى عند تشغيل البرنامج. وهذا المحتوى عادة سيكون عبارة عن صفحات قد يكون مكونات مثل header ..footer..widget ..الخ ...
ماهو الملف
main.ts
؟main.ts
هي نقطة بداية تشغيل تطبيقك ، وتقوم بتجميع كافة بيانات التطبيق اللازمة .
الملف app.component.ts .. وش فيه ؟ ومادا يعني الـ component أساسا ؟
عند دخولك لملف
app.component.ts
ستجد هذا المحتوى import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'My First Angular App!';
}
ادن مادا نقصد بكلمة Component ؟
الـ Component عبارة عن مكون قد يعبر عن صفحة مثلا. أو قد يشير على جزء معين من الصفحة مثل الـ Header footer او قد يكون widget ....فالمكون أو الـ Component في العادة يتكون من ثلاثة ملفات أو ملفين ومرات قد يكون ملف واحد حسب الحاجة وحسب حاجة المطور نفسه
الـComponent بشكل عام يتكون من ملف دو امتداد HTML وهو ملف الview الدي يعرض محتواه سواء كان صفحة او جزء معين من الصفحة ..
يتكون ايضا الComponent من ملف اخر دو امتداد TS وهو ملف مكتوب بلغة typescript وهي تقنية قريبة منjavascript ومبنية عليها الا انها كائنية التوجه عكس javascript
هذا الملف الاخير (ملف الـ
ts
) هو الذي يدير ملف ذو الامتداد .html
وهو الذي يتحكم بالمتغيرات المتواجده داخله هو الذي يقوم بمعالجته ..اي انهما ملفان مترابطان وأي تغيير يحدث بالمكون فيخبر ملف html انه حدث ذلك التغيير ويقوم بتنفيذه دون الحاجة لتحديث الصفحة شيء شبيه بالـ 'ajax' لمن يعرفون الاجاكس
سواء كان هذا التغيير في variable او اي شيء اخر ..وهكذا أي ان ملف الـ TS هو القلب النابض الذي ينعش ملف HTML وجعله يبدو حيوي يمكن نسميه controller بالنسبة للناس الي مطلعة على نظام الـ MVC فملف ذو امتداد ts هو يشبه controller اما ملفه دو الامتداد html بمثابة الـ view الخاص به.
هناك ملف ثالث قد يحتاجه المطور لربطه مع المكون وهو ملف الـ style دو امتداد css وهذا الملف يمثل الاستايل "التنسيق" الخاص بالمكون او بمعنى اخر ملف الـcss الخاص بملف الـhtml فقط.. يعني أنه لكل مكون له تنسيق css خاص به ولكن يمكن ان ننشيء ملف
style.css
كلاسيكي عام ويكون ملف موحد يخص جميع المكونات .
ويتم تعريف مكونات المكون بداخله بهذا الشكل ولا تنسى ان هدا الشكل سنسميه من الأن بالـ metadata وهو بمثابة بطاقة الهوية للـcomponent
@Component({
selector: 'my-component', // اسم المكون لكل مكون اسم خاص به نحتاجه عند مناداته بمكان ما
templateUrl: './my.component.html', // ملف العرض الخاص بالمكون
styleUrls: ['./my.component.css'] // ملف الاستايل الخاص بالمكون
})
// هو الاسم الذي نعطيه للمكون وهو متغير حسب الحاجة طبعا ليس شرط نسميه هكذا my-component
- Metadata: وهي التي تربط العلاقة بين كلاس المكون مع الـtemplate الخاص به فمثلا الـ Metadata التي اسمها
@Component
تقوم بتحديد رابط القالب (HTML) ورابط التنسيق (CSS) وكذلك الـ selector الذي نستعمله بمناداة المكون وتنفيذه في مكان ما بالصفحة
محتوى الملف عبارة عن class بسيط بداخله متغير اسمه title
لمن لم يفهم معنى الكلاس يمكنه التوجه الى جهاز "لم افهم" والبحث عن البرمجة الكائنية التوجه oriented object programming
مادا يعني هدا ؟
export
export
يعني تصدير.. الـexport
يعني تصدير ملف أو اظهار ملف والـ import
يعني جلب او استيراد الملف الية او استيراد الملف الفلاني الى ملفي هذا
عادة نستعمل
export
عند انشاء كلاس فيجب ان نصدره او خلينا نقول نعلنه
ونحتاج الى
import
عندما نحتاج الى مكتبة معينة او نحتاج ملف معين أنشأناه مثل هذا مثلاimport { Component } from '@angular/core';
هنا نقول اجلب لي الكلاس Component .وستجده بالمكتبة او بالمكان '@angular/core'
طبعا نحتاج الى الكلاس او الملف "component" لاجل تعريف هذا الكائن الغريب الذي يسمى بالـ Decorator
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
هذا الـ Decorator يقوم بتوفير اعدادات البيانات الخاصة بالـ "component" عندما نقول كومبننت فنحن نقصد بالمكون وعندما نقول مكون فنحن نقصد هذا الكلاس نفسه المسمى AppComponent
هذا الـ Decorator مهمته هي تحديد كيفية معالجة هده الـcomponent حيث يتم استعماله بوقت التشغيل فهو يحتوى على مسار ملف الـhtml ومسار الstyle الخاص بالكومبننت
الملف
.angular-cli.json
: يحتوى على اعدادات المشروع حيث يمكن من خلاله تحديد مثلا اسم المشروع وتحديد مكان مجلد src
ومجلد dist
(مجلد dist
هو المجلد الذي سيكون بداخله المشروع النهائي ولن تجده الان لاننا لم نقم بتوليده بعد وسنصل اليه بالدروس المتقدمة)
ايضا يحتوى الملف angular-cli.json
على مصفوفة styles + scripts حيث يمكن وضع داخلها ولنقل مثلا مسارات الـ jquery ومسارات css وغير ذلك من الـ plugins التي نرغب بتعريفها بمشاريعنا
نعود الان الى ملف app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-component', // اسم المكون لكل مكون اسم خاص به نحتاجه عند مناداته بمكان ما
templateUrl: './my.component.html', // ملف العرض الخاص بالمكون
styleUrls: ['./my.component.css'] // ملف الاستايل الخاص بالمكون
})
// هو الاسم الذي نعطيه للمكون وهو متغير حسب الحاجة طبعا ليس شرط نسميه هكذا my-component
export class AppComponent {
title = 'My First Angular App!';
}
يجب ان تعلم انه في تطبيقات الـangular يجب ان يتوفر على الأقل على component أساسي ولما نقول مكون اساسي فنحن نقصد " root component " بالتطبيق لدلك قام مطوري angular بوضع هذا الـcomponent الأساسي من اجل اقلاع التطبيق وطبعا بالدروس القادمة سنتعلم كيف ننشيء الـcomponents ..
فمهمة ملف الـ
app.component.ts
تكمن باقلاع التطبيق ويسمى بالمكون الأساسي أو root component عادة يتوفر مكون اساسي واحد بكل تطبيق angular
تعليقات
إرسال تعليق