Yükleniyor...

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
TYPESCRIPT Code
// 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
TYPESCRIPT Code
// 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
TYPESCRIPT Code
// 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

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

3
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 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