Да, обычной практикой является создание компонента для каждой страницы.
Если вы обрабатываете контент в зависимости от параметра (в вашем случае он выглядит как параметр url), вы можете настроить маршрут, чтобы принимать параметр:
{ path: 'article/:articleId', component: ArticleComponent }
затем в компоненте выполните:
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.params.subscribe((params) => {
// get your article with id params[articleId]
});
}
это поможет вам с параметризованными маршрутами.
Вы можете использовать это для создания страницы «Портфолио», после чего каждая подстраница будет перенаправлена на один и тот же компонент с разными параметрами (веб-дизайн, графический дизайн и т. Д.)