首頁  >  問答  >  主體

javascript - 底部元件,vue綁定class文字為何不變色,如下程式碼

#我把
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>

巴扎黑巴扎黑2665 天前1275

全部回覆(5)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:42:18

    你寫的太複雜了,這個完全可以在設定路由的時候寫一個linkActiveClass搞定的,建議去看看vue-router的文件
    設定可以寫在main.js定義路由裡面
    const router = new VueRouter({

    linkActiveClass: "active",    //设置点击状态的class
    mode: 'hash',
    hashbang:true,
    routes:routerConfig

    })

    然後在你的.vue樣式裡加上.active{color: #41B883;}的樣式就行了

    router-link寫成這樣首頁

    回覆
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:42:18

    換成@click.native應該就行了,當然樓上的方法更好

    回覆
    0
  • 阿神

    阿神2017-07-05 10:42:18

    將click事件換成@click.native="select('a')";
    寫這種導航時,我通常是用這樣的方法,v-for

             <li v-for="(item,index) in liData" :class="    {active:$route.matched[0].path==item.label}" ><router-link :to="item.label">{{item.name}}</router-link></li>


    data(){

    return {
    
      liData:[
        {name:"首页",label:"/home"},
        {name:"设计器",label:"/designer"},
        {name:"任务管理",label:"/taskmanger"},
        {name:"节点管理",label:"/node"}
      ]
      },
    这里的active的变化就是根据地址栏中变化而变化,这样前进后退都不会有问题

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:42:18

        <router-link :to="item.url" active-class="act-bar" tag="li" exact>
         
        </router-link>

    你可以定義選取後的樣式 .act-bar{}

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:42:18

    <p class="footer-box">
       <router-link to="/">
          首页
       </router-link>
    </p>
    .router-link-active{
        color: #41B883;
    }

    直接這樣就行了在.router-link-active設定的顏色,就是你目前點擊的router-link那一塊,啟動後的樣式顏色,也可以設定其他樣式,然後其他的router-link,會恢復預設的樣式

    回覆
    0
  • 取消回覆