Я изучаю vue и пытаюсь создать сайт с помощью vue. И я установил две навигационные вкладки на панели навигации.
Вот файл конфигурации маршрутизатора:
import Vue from 'vue'
import Router from 'vue-router'
import Management from '@/components/Management'
import Execution from '@/components/Execution'
Vue.use(Router)
const router = new Router({
routes: [
{
path: '/',
redirect: { name: 'Management'}
},
{
path: '/management/list',
name: 'Management',
component: Management,
},
{
path: '/execution/list',
name: 'Execution',
component: Execution
}
]
})
router.beforeEach((to, from, next) => {
next();
})
export default router
и App.vue:
<template>
<div class="container">
<div id="header">
<ul class="nav-ul">
<router-link tag="li" :class="['nav-li', {active: show === 'management'}]" v-on:click="changeShow('management')" :to="{name: 'Management'}"><span>case management</span></router-link>
<router-link tag="li" :class="['nav-li', {active: show === 'execution'}]" v-on:click="changeShow('execution')" :to="{name: 'Execution'}"><span>case execution</span></router-link>
</ul>
</div>
<router-view></router-view>
</div>
</template>
<script>
export default {
data: function(){
return {
show: 'management'
}
},
computed: {
changeShow: function (show) {
this.show = show;
}
},
watch: {
'$route'(to, from) {
if (to.name) {
this.show = to.name.toLowerCase()
}
}
}
}
</script>
<style>
.container {
height: 100%;
}
#header {
height: 50px;
width: 100%;
background-image: linear-gradient(to bottom,#FF3300 0,#ff6600 20%);
}
.nav-ul,.nav-li
{
margin: 0px;
padding: 0px;
list-style: none;
}
.nav-ul
{
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.nav-li {
width: 100px;
height: 38px;
text-align: center;
padding-top: 12px;
font-size: 16px;
}
.nav-li:hover {
background-color: #FFCC00;
cursor:pointer;
}
.nav-li.active {
background-color: #FFCC00;
}
</style>
Когда я щелкаю по вкладке execution
, ожидается, что ее цвет фона изменится на # FFCC00 (класс вкладки nav-li active
), а URL браузера будет /execution/list
. Однако после обновления страницы класс вкладки management
равен nav-li active
, а цвет фона - # FFCC00, а URL-адрес по-прежнему /execution/list
. Почему класс management
tab становится nav-li active
, а класс execution
tab - nav-li
?