Потому что watch работает на реактивные свойства. Если хочется добиться реакции на изменение параметров маршрута, то работает watch на $route.params или fullpath, например. Также есть навигационные хуки, которые вызываются при изменении или переходе по маршруту. Это всё при использовании vue router, при своем роутере надо об этом самому и позаботиться
Антон Антон,
1)Ну я вынес header.navbar,footer чтобы не писать их постоянно во всех компонентах. А с categorybar-component мне нужно только одну проверку на отображение сделать.
2) в router.js находятся все маршруты компоненты и их названия vue router