Article Outline
導入
yarn add @angular/router
import { RouterModule } from '@angular/router' # Angular Router
前提
import { ActivatedRoute, Router } from "@angular/router";
export class Component {
constructor(
private readonly route: ActivatedRoute,
private readonly router: Router,
) {}
}
画面遷移
JavaScriptから遷移する方法。
this.router.navigate(["/path", id]); // /path/:id
// URLだけ書き換える
this.router.navigate(["/path"], { replaceUrl: true });
HTMLから遷移する方法。
div([routerLink]="['/path']") // /path
div([routerLink]="['/path', id]") // /path/:id
ルーティングの設定
表示させる箇所を決める。
router-outlet
URLを設定する。
const routes: Routes = [{
path: 'path/:id',
component: OyaComponent,
children: [{
path: '',
component: KoComponent
}]
}]
@NgModule({
imports: [
RouterModule.forChild(routes),
URLを扱う
// パラメーターの初期値
this.route.snapshot.paramMap.get("id");
URLを生成する
UrlTreeを作成。
this.router.createUrlTree(["path/path", id], {
queryParams: {
page: 1,
},
});
UrlTreeから文字列への変換。
this.router.serializeUrl(this.router.createUrlTree([]));