#我把
data () {
return {
isActive: 'a'
}
},
中的 'a',換成'b',發表的字會變色
<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 default {
data () {
return {
isActive: 'a'
}
},
methods: {
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;
}
}
}
.active {
color: #41B883;
}
</style>
你寫的太複雜了,這個完全可以在設定路由的時候寫一個linkActiveClass搞定的,建議去看看vue-router的文件
設定可以寫在main.js定義路由裡面
const router = new VueRouter({
})
然後在你的.vue樣式裡加上.active{color: #41B883;}的樣式就行了
router-link寫成這樣首頁
換成@click.native應該就行了,當然樓上的方法更好
將click事件換成@click.native="select('a')";
寫這種導航時,我通常是用這樣的方法,v-for
data(){
你可以定義選取後的樣式 .act-bar{}
直接這樣就行了在.router-link-active設定的顏色,就是你目前點擊的router-link那一塊,啟動後的樣式顏色,也可以設定其他樣式,然後其他的router-link,會恢復預設的樣式