Je mets
data() {
return {
isActive: 'a'
}
}, si le 'a' dans
est remplacé par 'b', les mots publiés changeront de couleur
<template lang="html">
<p class="footer">
<p class="footer-box">
<router-link :class="{'active': isActive === 'a'}" @click="select('a')" to="/" class="item">首页</router-link>
<router-link :class="{'active': isActive === 'b'}" @click="select('b')" to="/create" class="item">发表</router-link>
<router-link :class="{'active': isActive === 'c'}" @click="select('c')" to="/message" class="item">消息</router-link>
<router-link :class="{'active': isActive === 'd'}" @click="select('d')" to="/user" class="item">我的</router-link>
</p>
</p>
</template>
<script>
export par défaut {
data () {
return {
isActive: 'a'
}
},
méthodes : {
select (value) {
this.isActive = value
}
}
}
</script>
<style lang="less">
.footer {
position: fixed;
left: 0;
bottom: 0;
height: 50px;
width: 100%;
background-color: #fff;
border-top: 1px solid #bbb;
.footer-box {
display: flex;
height: 50px;
width: 100%;
line-height: 40px;
.item {
flex: 1;
text-align: center;
}
}
}
.actif {
color: #41B883;
}
</style>
Ce que vous avez écrit est trop compliqué. Cela peut être fait en écrivant une linkActiveClass lors de la configuration de la route. Il est recommandé de lire la documentation de vue-router
})La configuration peut être écrite dans la route définie par main.js. = nouveau VueRouter({
Il devrait suffire de le remplacer par @click.native. Bien sûr, la méthode ci-dessus est meilleure
.Remplacez l'événement click par @click.native="select('a')";
Lorsque j'écris ce type de navigation, j'utilise généralement cette méthode, v-for
<ul>
</ul>
données(){
Vous pouvez définir le style sélectionné .act-bar{}
Faites simplement ceci. La couleur définie dans .router-link-active est le lien de routeur sur lequel vous cliquez actuellement. La couleur du style après l'activation peut également être définie sur d'autres styles, puis les autres liens de routeur reviendront à la valeur par défaut. .Style