El componente angular 4 ngOnInit no se llama en cada solicitud de ruta

Hace poco comencé a sumergirme en Angular 4 desde Angular 1.5. Estoy trabajando con rutas de usuario y extrayendo datos de API de un servicio a un componente de usuario.

El componente parece permanecer estático a diferencia de los controladores en 1. * donde se actualizaron en cada solicitud.

¿Hay alguna forma de tener la función ngOnInit llamada en cada nueva solicitud de ruta?

Mi clase de componente de usuario:

// url structure: /user/:id
export class UserComponent implements OnInit {

    constructor(private route: ActivatedRoute) {}

    ngOnInit() {

      // doesn't log new id on route change
      let id = this.route.snapshot.params['id'];
      console.log(id);

      this.route.params
        .switchMap(params => this.userService.getUser(params['id']))
        .subscribe(user => {
          // logs new id on route change
          let id = this.route.snapshot.params['id'];
          console.log(id);

          this.user = user
        });
    }
}

ACTUALIZAR:

Encontré una solución que creo que funciona mejor para mi escenario. Basado en varias respuestas y comentarios a mi pregunta y más investigación, suscribirse a la ruta parece ser el camino a seguir. Aquí está mi componente actualizado:

export class UserComponent {

  user;
  id;

  constructor(
    private userService: UserService,
    private route: ActivatedRoute
  ) {}


  ngOnInit() {
    this.route.params
      .subscribe(params => this.handleRouteChange(params));
  }

  handleRouteChange(params) {
    this.id = params['id'];

    switch (this.id) {
      case '1':
        console.log('User 1');
        break;

       case '2':
        console.log('User 2');
        break;

       case '3':
        console.log('User 3');
        break;
    }

    this.userService.getUser(this.id).
      subscribe(user => this.user = user);
  }

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta