Cách hiện đại nên ưu tiên withComponentInputBinding() nếu param map trực tiếp vào input. Khi cần đọc router state phức tạp, dùng ActivatedRoute và paramMap/queryParamMap.
Ví dụ bridge route param sang signal:
typescript
@Component({ template: "User {{ id() }}" })
export class UserPage {
private route = inject(ActivatedRoute)
id = toSignal(this.route.paramMap.pipe(map(params => params.get("id"))), {
initialValue: null,
})
}Snapshot chỉ phù hợp khi param không đổi trong lifetime component.
Nếu route reuse và param có thể đổi, dùng stream hoặc component input binding.