CLI Referansı
Angular CLI Referansı, Angular projelerinde geliştirme sürecini hızlandıran ve standardize eden güçlü bir araç setidir. CLI, "Command Line Interface" yani Komut Satırı Arayüzü olarak bilinir ve Angular projelerinde komponent oluşturma, servis ekleme, modül yönetimi, testler ve derleme süreçlerini otomatikleştirir. CLI Referansı, yalnızca komutların listesini vermekle kalmaz; aynı zamanda bu komutların hangi senaryolarda kullanılacağını, hangi opsiyonların mevcut olduğunu ve en iyi uygulama örneklerini göstererek Angular geliştirme sürecinde rehberlik sağlar.
Modern web uygulamaları ve SPA (Single Page Application) geliştirmede CLI kullanımı kritik bir rol oynar. Component tabanlı mimarilerde, state yönetimi, veri akışı ve yaşam döngüsü yönetimi gibi temel kavramların doğru uygulanması, performans ve sürdürülebilirlik açısından hayati öneme sahiptir. Angular CLI, geliştiricilere bu kavramları uygularken rehberlik ederek prop drilling, gereksiz yeniden render ve state mutasyonları gibi yaygın hataları önler.
Bu referans, Angular CLI’nin temel ve ileri seviye kullanımlarını kapsamlı bir şekilde öğretir. Okuyucu, komponent oluşturma, state yönetimi ve veri akışı senaryolarını CLI üzerinden uygulamayı öğrenirken, kod örnekleri ile en iyi uygulama ve optimizasyon tekniklerini görecektir. CLI Referansı, modern Angular projelerinde verimlilik, tutarlılık ve kod kalitesi sağlamak için kritik bir kaynaktır.
Temel Örnek
typescript// Angular CLI ile temel bir komponent ve state yönetimi örneği
// CLI komutları: ng generate component counter
import { Component } from '@angular/core';
@Component({
selector: 'app-counter',
template: ` <h2>Counter: {{ count }}</h2> <button (click)="increment()">Artır</button> <button (click)="decrement()">Azalt</button>
`,
styleUrls: ['./counter.component.css']
})
export class CounterComponent {
count: number = 0;
increment(): void {
this.count += 1;
}
decrement(): void {
if (this.count > 0) {
this.count -= 1;
}
}
}
Yukarıdaki Angular örneği, CLI Referansı ile oluşturulmuş temel bir komponenti ve state yönetimini göstermektedir. Öncelikle, ng generate component counter
komutu ile Angular CLI, projenin uygun dizininde bir komponent klasörü oluşturur ve gerekli dosyaları (TS, HTML, CSS, spec.ts) otomatik olarak ekler. CounterComponent
sınıfında, komponent state’i count
değişkeni ile yönetilir ve increment
ile decrement
metodları ile güncellenir.
Template kısmında, Angular’ın event binding özelliği (click)
kullanılarak kullanıcı etkileşimi ile state değişiklikleri tetiklenir. Böylece prop drilling veya gereksiz yeniden render sorunları minimuma indirilir. Angular CLI, bu yapılandırmayı otomatik olarak oluşturduğu için geliştirici, state yönetimine ve veri akışına odaklanabilir. Bu örnek, component tabanlı Angular geliştirme, temel lifecycle ve state yönetimi prensiplerini pratik bir şekilde öğretir ve modern SPA projelerinde kullanılabilir.
Pratik Örnek
typescript// Daha gelişmiş bir CLI tabanlı komponent: API ile veri akışı ve lifecycle yönetimi
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-user-list',
template: ` <h2>Kullanıcı Listesi</h2> <ul> <li *ngFor="let user of users">{{ user.name }}</li> </ul>
`,
styleUrls: ['./user-list.component.css']
})
export class UserListComponent implements OnInit {
users: any[] = [];
constructor(private http: HttpClient) {}
ngOnInit(): void {
this.fetchUsers();
}
fetchUsers(): void {
this.http.get<any[]>('[https://jsonplaceholder.typicode.com/users](https://jsonplaceholder.typicode.com/users)')
.subscribe({
next: (data) => this.users = data,
error: (err) => console.error('API Hatası:', err)
});
}
}
Advanced Angular Implementation
typescript// CLI ile üretilecek enterprise seviye komponent örneği: reusable card component ve state yönetimi
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
@Component({
selector: 'app-card',
template: ` <div class="card"> <h3>{{ title }}</h3> <p>{{ description }}</p> <ng-content></ng-content> </div>
`,
styleUrls: ['./card.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class CardComponent {
@Input() title!: string;
@Input() description!: string;
}
Angular CLI ile oluşturulan yukarıdaki örneklerde, component tabanlı mimari ve state yönetimi kavramları ileri seviyede gösterilmiştir. UserListComponent
, lifecycle hook ngOnInit
kullanarak API çağrısı yapar ve veri akışını yönetir. Bu, CLI kullanılarak modern SPA uygulamalarında veri yönetimini basit ve etkili kılar. CardComponent
örneğinde ise ChangeDetectionStrategy.OnPush
kullanımı, performansı artırmak için gereksiz yeniden render’ları önler.
CLI Referansı, Angular projelerinde tekrarlayan görevleri otomatikleştirirken, geliştiricilere en iyi uygulama örneklerini de sunar. Prop drilling ve state mutasyonları gibi yaygın hataları önler ve component lifecycle yönetimini kolaylaştırır. Ayrıca CLI, hata yönetimi, performans optimizasyonu ve güvenlik uygulamaları konusunda rehberlik eder. Angular geliştiricileri için CLI Referansı, hem hız hem de sürdürülebilirlik açısından vazgeçilmezdir.
📊 Kapsamlı Referans
Angular Element/Method | Description | Syntax | Example | Notes |
---|---|---|---|---|
Component | Angular komponent oluşturma | @Component({...}) | See CounterComponent | Temel yapı |
NgModule | Modül tanımlama | @NgModule({...}) | See AppModule | Module organizasyonu |
Service | Servis oluşturma | @Injectable({...}) | ng generate service data | Dependency injection |
Input | Component input property | @Input() propName | See CardComponent | Parent-child veri iletimi |
Output | Event emitter | @Output() event = new EventEmitter() | <child (event)="parentHandler()"> | Parent-child event |
ngOnInit | Lifecycle hook | ngOnInit() | See UserListComponent | Component initialization |
ngOnDestroy | Lifecycle hook | ngOnDestroy() | Cleanup subscriptions | Memory management |
HttpClient | get/post request | this.http.get(url) | See UserListComponent | API çağrısı |
FormsModule | Template-driven forms | <input [(ngModel)]="name"> | Form input binding | Form handling |
ReactiveFormsModule | Reactive forms | FormGroup, FormControl | Reactive form example | Complex forms |
RouterModule | Routing | RouterModule.forRoot(routes) | Routing configuration | Navigation |
ChangeDetectionStrategy | Performance optimization | ChangeDetectionStrategy.OnPush | CardComponent | Reduce re-renders |
📊 Complete Angular Properties Reference
Property | Values | Default | Description | Angular Support |
---|---|---|---|---|
selector | string | '' | Component CSS selector | All versions |
template | string | '' | HTML template of component | All versions |
styleUrls | string[] | [] | Component style files | All versions |
providers | Array | [] | Dependency injection providers | All versions |
inputs | string[] | [] | List of input properties | All versions |
outputs | string[] | [] | List of output events | All versions |
changeDetection | Default/OnPush | Default | Change detection strategy | Angular 2+ |
encapsulation | Emulated/None/ShadowDom | Emulated | Style encapsulation | Angular 2+ |
interpolation | Array | string[] | ['{{', '}}'] | Template interpolation delimiters |
animations | Array | [] | Component animations | Angular 4+ |
entryComponents | Array | [] | Manually bootstrap components | Angular 2-8 |
host | Object | {} | Host element bindings | All versions |
CLI Referansı öğreniminde temel çıkarımlar şunlardır: Angular CLI, komponent oluşturma, state yönetimi, lifecycle ve veri akışı süreçlerini otomatize ederek geliştirici verimliliğini artırır. Modern web uygulamalarında SPA yapısı içinde veri akışı ve komponent reusability’yi sağlar. CLI kullanarak projeleri başlatmak ve yönetmek, kod kalitesini artırırken prop drilling ve state mutasyonu hatalarını önler.
Önerilen sonraki konular arasında Angular routing, advanced forms, RxJS ile state yönetimi ve Angular performance optimization teknikleri yer alır. CLI referansını gerçek projelerde uygulamak, geliştirme sürecini hızlandırır ve enterprise düzeyinde kod kalitesini güvence altına alır. Resmi Angular dökümantasyonu ve CLI komut kılavuzları, ileri seviye öğrenme için en önemli kaynaklardır.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek