Вы не хотите использовать CSS, чтобы скрыть.Прелесть Vue в том, что в случае с мобильным кодом код вообще не будет сгенерирован.
Используйте директиву v-if и добавьте свойство isMobile
к вашим данным, вычисленным, сохраненным,и т. д. Или вызовите метод, чтобы получить его.
<app-footer v-if='!isMobile'></app-footer>
Для заголовка есть 2 способа.Используя элемент component
с v-bind:is
до swap in the correct one
или v-if
и v-else
<app-header v-if='!isMobile'></app-header>
<app-header-mobile v-else></app-header-mobile>
Вот официальная ссылка на подход Vue dynamic component
.https://vuejs.org/v2/guide/components-dynamic-async.html.
Это будет выглядеть так:
<component v-bind:is="currentHeaderComponent"></component>
В этом случае вы должны установить currentHeaderComponent
в зависимости от ваших условий.
Если вы настаиваете на CSS и медиа-запросах для нижнего колонтитула, установите компонент id
или class
, и это в вашем CSS
Component
<app-header id='app-header'></app-header>
<router-view></router-view>
<app-footer id='app-footer'></app-footer>
CSS
#app-footer {display: none;}