1. Angular Nedir ve SPA Nedir?
Öncelikle Angular ile başlamadan önce, bu terimleri netleştirelim. SPA, "Tek Sayfa Uygulaması" anlamına gelir. Bu tarz bir uygulama, her tıklamada sayfa yenilenmesi yerine, dinamik bir şekilde sadece gerekli olan içeriği yükler. Kullanıcı deneyimi çok daha hızlı ve kesintisiz olur.
Angular ise, Google tarafından geliştirilen ve popülerleşmiş bir frontend framework'üdür. Angular, HTML ve TypeScript kullanarak dinamik web uygulamaları oluşturmanıza olanak tanır. Modern, kullanıcı dostu ve ölçeklenebilir projeler için mükemmel bir tercihtir.
2. Başlangıç: Angular ile Projeyi Kurma
Angular ile bir proje başlatmak, bir kaç adımda gerçekleşiyor. İhtiyacınız olan ilk şey, bilgisayarınızda Node.js ve npm (Node Package Manager) yüklü olması. Yükleme işlemini yaptıktan sonra, Angular CLI'yi (Command Line Interface) kurmanız gerekiyor.
Terminal üzerinden şunu yazmanız yeterli:
npm install -g @angular/cli
Yukarıdaki komut, Angular CLI'yi global olarak yükleyecektir. Artık Angular projelerinizi rahatlıkla oluşturabilirsiniz.
Yeni bir Angular projesi oluşturmak için terminalde şu komutu yazabilirsiniz:
ng new my-angular-spa
Bu komutla, "my-angular-spa" isimli bir proje klasörü oluşturulacak ve içinde gerekli tüm dosyalar hazır olacak. "ng serve" komutuyla da projenizi çalıştırabilirsiniz.
cd my-angular-spa
ng serve
Bu komutları çalıştırdıktan sonra, tarayıcınızda http://localhost:4200 adresine giderek Angular uygulamanızı görüntüleyebilirsiniz.
3. Routing: SPA'nın Temeli
Bir SPA uygulaması, tüm sayfalarını tek bir HTML sayfası içinde sunar. Ancak, her sayfa arasında geçiş yapabilmek için Angular’ın Router modülüne ihtiyacınız olacak. Angular Router, sayfalar arası geçişleri yönetir ve uygulamanızın sayfa yönlendirmelerini çok kolay hale getirir.
Angular Router kullanmak için öncelikle `app-routing.module.ts` dosyasını oluşturmalısınız. Aşağıdaki gibi basit bir routing yapılandırması yapabilirsiniz:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Burada, iki basit rota oluşturduk: biri "home" için, diğeri ise "about" için. Uygulamanızda farklı bileşenler (component) kullanarak bu rotalar arasında geçiş yapabilirsiniz.
4. Component'ler: SPA'nın Temel Yapısı
Angular'da, her bir sayfa, bir bileşen (component) olarak tanımlanır. Bileşenler, HTML, CSS ve TypeScript dosyalarını içerir ve her biri bir sayfa ya da bir UI öğesini temsil eder.
Örneğin, bir "Home" bileşeni yaratmak için şu komutları kullanabilirsiniz:
ng generate component home
Bu komut, otomatik olarak bir "home" bileşeni oluşturur. Daha sonra, `home.component.html` dosyasına HTML içeriği ekleyebilir ve gerekli CSS'i `home.component.css` dosyasına yazabilirsiniz.
Angular, her bileşeni modüler olarak ele alır, bu da uygulamanızın büyüdükçe daha düzenli olmasını sağlar.
5. API İle Veri Çekmek: Dinamik İçerik
SPA’lar genellikle dinamik içerik yükler, bu yüzden bir API ile etkileşim kurmanız gerekebilir. Angular, bu işlemi yapmak için mükemmel araçlar sunar. `HttpClient` servisi ile API çağrıları yapabilirsiniz.
Örneğin, bir kullanıcı listesi çekmek için şu adımları izleyebilirsiniz:
İlk olarak, `HttpClientModule`'u `app.module.ts` dosyasına dahil etmeniz gerekiyor:
import { HttpClientModule } from '@angular/common/http';
@NgModule({
declarations: [ /* diğer bileşenler */ ],
imports: [
HttpClientModule,
/* diğer modüller */
],
bootstrap: [AppComponent]
})
export class AppModule { }
Daha sonra, bir servis (service) oluşturarak API çağrısını gerçekleştirebilirsiniz:
ng generate service user
Ve `user.service.ts` dosyasına şu kodu yazabilirsiniz:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root',
})
export class UserService {
constructor(private http: HttpClient) {}
getUsers(): Observable {
return this.http.get('https://jsonplaceholder.typicode.com/users');
}
}
Artık, bu servisi kullanarak kullanıcı verilerini sayfanıza çekebilirsiniz. `component` içinde servisi çağırarak, verileri UI'da dinamik bir şekilde gösterebilirsiniz.
6. Angular SPA'nın Performansını Artırma
SPA’lar genellikle hızlıdır, ancak iyi bir performans için dikkat edilmesi gereken bazı noktalar vardır. Öncelikle, büyük boyutlu dosyaları sıkıştırarak uygulamanızın yüklenme süresini azaltabilirsiniz. Angular'ın AOT (Ahead of Time) Compilation ve Lazy Loading özelliklerini kullanarak sayfa yükleme hızını artırabilirsiniz.
Lazy Loading, yalnızca ihtiyaç duyulduğunda bileşenlerin yüklenmesini sağlar. Bu, uygulamanın ilk yükleme süresini önemli ölçüde hızlandırır.
7. Sonuç
Angular ile SPA geliştirmek, başlangıçta biraz karmaşık görünebilir, ancak yukarıdaki adımları izlerseniz bu süreç oldukça eğlenceli hale gelir. Angular’ın sunduğu güçlü araçlar ve modüler yapı sayesinde, büyük ve ölçeklenebilir uygulamalar oluşturabilirsiniz.
Uygulamanızda daha fazla özellik eklemek, farklı bileşenler yaratmak ve harika bir kullanıcı deneyimi sunmak tamamen sizin elinizde. Şimdi sıra, öğrendiklerinizi projelere dökme zamanında!