Middle
Πώς λειτουργεί το Angular;
sobes.tech AI
Απάντηση από AI
Angular MVC/MVVM архитектурасына негізделген. Ол интерактивті веб-қосымшалар құру үшін компоненттерді, деректерді байлау және тәуелділіктерді енгізуді пайдаланады.
Негізгі тұжырымдамалар:
- Компоненттер: Қосымшаның құрылыс блоктары, олар шаблон, класс және стильдерден тұрады.
- Модульдер (NgModules): Байланысқан компоненттерді, қызметтерді және басқа элементтерді топтастырады.
- Деректерді байлау: Модель мен көрініс арасында деректерді синхрондау.
- Біржақты байлау: Деректер бір бағытта ағады (мысалы, модельден көрініске).
- Екі жақты байлау
[()]: Модельдегі өзгерістер көрініске әсер етеді және керісінше.
- Қызметтер: Әр түрлі компоненттер пайдалана алатын функционалдылықты қамтамасыз етеді (мысалы, HTTP сұрауларымен жұмыс істеу).
- Тәуелділіктерді енгізу (DI): Тәуелділіктерді (мысалы, қызметтерді) компоненттерге жеткізу механизмі.
- Шаблондар: Angular синтаксисінің кеңейтулері бар HTML, деректерді көрсету және оқиғаларды өңдеу үшін.
- Директивалар: DOM элементтерінің мінез-құлқын немесе сыртқы көрінісін өзгертеді.
- Құрылымдық: DOM элементтерін қосады, жояды немесе манипуляциялайды (
*ngIf,*ngFor). - Атрибуттық: Бар элементтің сыртқы көрінісін немесе мінез-құлқын өзгертеді (
[ngClass],[ngStyle]).
- Құрылымдық: DOM элементтерін қосады, жояды немесе манипуляциялайды (
- Компоненттердің өмірлік циклі: Әр түрлі кезеңдерде кодты орындауға мүмкіндік беретін хуктар.
- NgZone: Асинхронды операциялар кезінде автоматты түрде өзгерістерді анықтау және көріністі жаңарту.
Жұмыс процесі:
- Жүктеу: Қосымша жүктеледі, Bootstrap модулі түбір компонентті іске қосады.
- Рендеринг: Angular шаблондарды компиляциялайды және DOM құрылымын жасайды.
- Деректерді байлау: Деректер мен көрініс арасында байланыс орнатылады.
- Оқиғаларды өңдеу: Оқиға тыңдаушылар пайдаланушы әрекеттеріне жауап береді.
- Өзгерістерді анықтау: Зона асинхронды операцияларды бақылайды.
- Көріністі жаңарту: Өзгерістер анықталған кезде Angular DOM-ның тиісті бөліктерін жаңартады.
Екі жақты деректер байлау мысалы:
<!-- Шаблонда -->
<input [(ngModel)]="userName">
<p>Сәлем, {{ userName }}!</p>
// Компонент сынында
export class MyComponent {
userName: string = '';
}