vue-router二级导航切换路由及高亮显示的实现方法

2020-06-13 10:16:34易采站长站整理

</div>
</template>

<router-view>区域通过配置路由的js文件,来操作这些区域的内容

设计好样式后,我们可以发现我们的页面上出现了导航

那我们如何设置默认选项并未其设置样式呢?
先定义一个定义当前页面的变量:


guidecurrent:0

设置选中样式:


.guide-active{
background: black;
}

.guide-active::after {
content: "◢◣";
font-size: 8px;
position: absolute;
color: rgb(182, 15, 15);
top: 87%;
left: 50%;
transform: translate(-10px, -5px);
}

通过v-bind属性将class属性赋给每一个<li>元素

也就是说只有当前页面的<li>元素才会被加载active样式

这里注意vue中的属性如果要以变量设置

必须要写成 v-bind:属性名]=”[属性值]”的形式


<li v-for="(item,index) in guides" :key="index" role="presentation"
:class="item.id==guidecurrent?'guide-active':''"
>
<router-link :to="item.link">{{item.name}}</router-link>
</li>

下面我们设计二级导航

5.二级导航页面样式

与上面相同,我们创建两个.vue页面

Rank.vue和Recommend.vue

6.配置路由

index.js


routes: [
{
path: '/discover',
name: 'discover',
component: DisCover,
children:[
{path:'rec',component:reccommend},
{path:'rank',component:rank},
] },
{
path: '/mymusic',
name: 'mymusic',
component: MyMusic
}
]

6.配置二级导航的<router-link>


<ul class="nav nav-pills">
<li role="presentation" v-for="(item,index) in guides" :key="index"
:class="item.id==discovercurrent?'active':''"
>
<router-link :to="item.id">{{item.name}}</router-link>
</li>
</ul>

这时我们发现我们的二级导航已经出现了