Bu eğitim dersi, uygulamanıza rotaların nasıl ekleneceğini gösterir.
IMPORTANT: Yönlendirmeyi (routing) öğrenmek için yerel ortamınızı kullanmanızı öneriyoruz.
Neler öğreneceksiniz
Bu dersin sonunda uygulamanız yönlendirme desteğine sahip olacaktır.
Yönlendirmenin kavramsal önizlemesi
Bu eğitim, Angular'da yönlendirmeyi tanıtır. Yönlendirme, uygulamadaki bir bileşenden diğerine navigasyon yapabilme yeteneğidir. Tek Sayfa Uygulamalarında (SPA), kullanıcı için istenen görünümü temsil etmek üzere sayfanın yalnızca bazı bölümleri güncellenir.
Angular Router, kullanıcıların rotalar tanımlamasına ve o rota uygulama tarafından istendiğinde ekranda hangi bileşenin görüntülenmesi gerektiğini belirtmesine olanak tanır.
Bu derste, ayrıntılar sayfasına navigasyon yapabilmek için uygulamanızda yönlendirmeyi etkinleştireceksiniz.
-
Varsayılan bir details bileşeni oluşturun
Terminalden,
Detailsbileşenini oluşturmak için aşağıdaki komutu girin:ng generate component detailsBu bileşen, belirli bir konut konumu hakkında daha fazla bilgi sağlayan ayrıntılar sayfasını temsil edecektir.
-
Uygulamaya yönlendirme ekleyin
src/appdizininde,routes.tsadında bir dosya oluşturun. Bu dosya, uygulamadaki rotaları tanımlayacağımız yerdir.main.tsdosyasında, uygulamada yönlendirmeyi etkinleştirmek için aşağıdaki güncellemeleri yapın:Routes dosyasını ve
provideRouterfonksiyonunu içe aktarın:Import routing details in src/main.ts
/* * Protractor support is deprecated in Angular. * Protractor is used in this example for compatibility with Angular documentation tools. */ import {bootstrapApplication, provideProtractorTestingSupport} from '@angular/platform-browser'; import {App} from './app/app'; import {provideRouter} from '@angular/router'; import routeConfig from './app/routes'; bootstrapApplication(App, { providers: [provideProtractorTestingSupport(), provideRouter(routeConfig)], }).catch((err) => console.error(err));bootstrapApplicationçağrısını yönlendirme yapılandırmasını dahil edecek şekilde güncelleyin:Add router configuration in src/main.ts
/* * Protractor support is deprecated in Angular. * Protractor is used in this example for compatibility with Angular documentation tools. */ import {bootstrapApplication, provideProtractorTestingSupport} from '@angular/platform-browser'; import {App} from './app/app'; import {provideRouter} from '@angular/router'; import routeConfig from './app/routes'; bootstrapApplication(App, { providers: [provideProtractorTestingSupport(), provideRouter(routeConfig)], }).catch((err) => console.error(err));
src/app/app.tsdosyasında, bileşeni yönlendirme kullanacak şekilde güncelleyin:Router yönergeleri
RouterOutletveRouterLinkiçin dosya düzeyinde import'lar ekleyin:Import router directives in src/app/app.ts
import {Component} from '@angular/core'; import {Home} from './home/home'; import {RouterLink, RouterOutlet} from '@angular/router'; @Component({ selector: 'app-root', imports: [Home, RouterOutlet, RouterLink], template: ` <main> <a [routerLink]="['/']"> <header class="brand-name"> <img class="brand-logo" src="/public/logo.svg" alt="logo" aria-hidden="true" /> </header> </a> <section class="content"> <router-outlet /> </section> </main> `, styleUrls: ['./app.css'], }) export class App { title = 'homes'; }@Componentmeta verileri imports'unaRouterOutletveRouterLinkekleyinAdd router directives to component imports in src/app/app.ts
import {Component} from '@angular/core'; import {Home} from './home/home'; import {RouterLink, RouterOutlet} from '@angular/router'; @Component({ selector: 'app-root', imports: [Home, RouterOutlet, RouterLink], template: ` <main> <a [routerLink]="['/']"> <header class="brand-name"> <img class="brand-logo" src="/public/logo.svg" alt="logo" aria-hidden="true" /> </header> </a> <section class="content"> <router-outlet /> </section> </main> `, styleUrls: ['./app.css'], }) export class App { title = 'homes'; }templateözelliğinde,<app-home />etiketini<router-outlet>yönergesiyle değiştirin ve ana sayfaya geri dönüş bağlantısı ekleyin. Kodunuz bu kodla eşleşmelidir:Add router-outlet in src/app/app.ts
import {Component} from '@angular/core'; import {Home} from './home/home'; import {RouterLink, RouterOutlet} from '@angular/router'; @Component({ selector: 'app-root', imports: [Home, RouterOutlet, RouterLink], template: ` <main> <a [routerLink]="['/']"> <header class="brand-name"> <img class="brand-logo" src="/public/logo.svg" alt="logo" aria-hidden="true" /> </header> </a> <section class="content"> <router-outlet /> </section> </main> `, styleUrls: ['./app.css'], }) export class App { title = 'homes'; }
-
Yeni bileşene rota ekleyin
Önceki adımda, şablondaki
<app-home>bileşenine olan referansı kaldırdınız. Bu adımda, o bileşene yeni bir rota ekleyeceksiniz.routes.tsdosyasında, bir rota oluşturmak için aşağıdaki güncellemeleri yapın.Home,Detailsve rota tanımlarında kullanacağınızRoutestürü için dosya düzeyinde import'lar ekleyin.Import components and Routes
import {Routes} from '@angular/router'; import {Home} from './home/home'; import {Details} from './details/details'; const routeConfig: Routes = [ { path: '', component: Home, title: 'Home page', }, { path: 'details/:id', component: Details, title: 'Home details', }, ]; export default routeConfig;RoutestüründerouteConfigadında bir değişken tanımlayın ve uygulama için iki rota tanımlayın:Add routes to the app
import {Routes} from '@angular/router'; import {Home} from './home/home'; import {Details} from './details/details'; const routeConfig: Routes = [ { path: '', component: Home, title: 'Home page', }, { path: 'details/:id', component: Details, title: 'Home details', }, ]; export default routeConfig;routeConfigdizisindeki girişler, uygulamadaki rotaları temsil eder. İlk giriş, URL''ile eşleştiğindeHomebileşenine navigasyon yapar. İkinci giriş, ilerideki bir derste tekrar ele alınacak bazı özel biçimlendirme kullanır.
Tüm değişiklikleri kaydedin ve uygulamanın tarayıcıda çalıştığını doğrulayın. Uygulama hala konut konumları listesini görüntülemelidir.
SUMMARY: Bu derste, uygulamanızda yönlendirmeyi etkinleştirdiniz ve yeni rotalar tanımladınız. Artık uygulamanız görünümler arasında navigasyonu destekleyebilir. Bir sonraki derste, belirli bir konut konumu için "ayrıntılar" sayfasına navigasyon yapmayı öğreneceksiniz.
Uygulamanızla büyük ilerleme kaydediyorsunuz, aferin.
Bu derste ele alınan konular hakkında daha fazla bilgi için: