Effective Angularの第2章のRouterまでのまとめ
の続編
Effective Angular: Develop applications of any size by effectively using Angular with Nx, RxJS, NgRx, and Cypress
を購入したマスタカ
2章の後半を読んだのでその感想
@Input
・コンポーネント間での受け渡し
@Input() navbarItms: NavbarItem[] = []; //デフォルトなしでnon-nullの場合は! @Input() navbarItms!: NavbarItem[];
・setterを隠す
private _navItems: NavbarItem[] = []; @Input() set navbarItems(valuie: NavbarItem[]) { this._navItems = valuie } get navbarItems(): NavbarItem[] { return this._navItems; }
・setter後に処理を入れる
@Input({transform: addHome}) navbarItems: NavbarItem[] = []; function addHome(items: NavbarItem[]) { return [{ label: 'home', route: '/'}, ...items] }
・required
@Input({required: true})で必須にできる
https://angular.jp/guide/components/inputs
・ngOnChanges
データの受け渡しをhookできる
https://qiita.com/ksh-fthr/items/ccd9861f919c4aa30ae8
・two-way binding
[()]
https://angular.dev/guide/templates/two-way-binding
formの場合はngModelを使う
https://angular.dev/guide/directives#displaying-and-updating-properties-with-ngmodel
https://qiita.com/Dera04/items/477b149ea0bc5e39ef2a
Route
・ActivatedRoute
ここからパラメーターを取れる
https://qiita.com/okomeme/items/f38dd3f8c454607431e1
constructor(private route: ActivatedRoute) { console.log(this.route.snapshot); console.log(this.route.snapshot.queryParamMap.get('b')); this.route.queryParams.subscribe(params =>{ console.log(params) }); }
DI
・applicaionでprovide
export const appConfig: ApplicationConfig = { providers: [ provideRouter(appRoutes), [SampleService] ], };
・propertyをDIする
https://angular.jp/guide/di/dependency-injection-providers
//URLはたぶんコメント export const BASE_URL = new InjectionToken<string>('URL'); {provide: BASE_URL, useValue: "www.yahoo.co.jp"} constructor(@Inject(BASE_URL)a: string) {}