Vue路由底部导航图片点击切换(绝对经典)

本文介绍两种在Vue中实现底部导航图标点击切换的方法。一种是通过为图片添加点击事件改变图片源,另一种是利用Vue的条件渲染指令,使代码更简洁。详细展示了代码实例,适用于如京东等电商应用底部导航的动态显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vue路由底部导航图片点击切换(绝对经典)

需求:实现图标点击进行切换,(使用场景:京东图标底部导航的切换显示)

在这里插入图片描述

我这边为大家写出了两种方法:

1、为图片添加点击事件,在点击事件中改变图片地址

1.1、在app组件中添加显示图片代码

    <router-link to='/fruits'> <img :src="fruitsimg" @click="fruitsclick" width="50px height: 50px;">水果</router-link>
    &nbsp;
    <router-link to="/vegetables"><img :src="vegetablesimg" @click="vegetablesclick" width="50px height: 50px;">蔬菜</router-link>
    &nbsp;
    <router-link to='/dried'><img :src="driedimg" @click="driedclick" width="50px height: 50px;">干果</router-link>
    &nbsp;
    <router-link to='/seafood'><img :src="seafoodimg" @click="seafoodclick" width="50px height: 50px;">海鲜</router-link>

1.2、编写点击事件

fruitsclick(){
      this.fruitsimg = '/img/水果图标1.png';
          this.vegetablesimg ='/img/蔬菜图标2.png' ;
          this.driedimg ='/img/干果图标2.png';
          this.seafoodimg='/img/海鲜图标2.png';
    },
    vegetablesclick(){
      this.vegetablesimg = '/img/蔬菜图标1.png';
      this.fruitsimg = '/img/水果图标2.png';
      this.driedimg ='/img/干果图标2.png';
      this.seafoodimg='/img/海鲜图标2.png';
    },
    driedclick(){
      this.driedimg = '/img/干果图标1.png';
      this.fruitsimg = '/img/水果图标2.png';
      this.vegetablesimg ='/img/蔬菜图标2.png' ;
      this.seafoodimg='/img/海鲜图标2.png';
    },
    seafoodclick(){
      this.seafoodimg = '/img/海鲜图标1.png';
      this.fruitsimg = '/img/水果图标2.png';
      this.vegetablesimg ='/img/蔬菜图标2.png' ;
      this.driedimg ='/img/干果图标2.png';
    }

2、通过vue的条件渲染制令进行判断显示图片(推荐,因为代码更简洁)

2.1、定义两个boolean变量(需要显示几个图片就需要几个变量),用于判断显示的图片

 data(){
    return{
      ganshuoactivate:true,
      shucaiactivate:false,
     
    }
  },

2.2、在div中添加图片显示:

 <div class="tab-item">
        <img v-if="!ganshuoactivate"  @click="homeclick" src="/ganguo.png">
        <img v-else  @click="homeclick" src="/ganguo-selected.png">

        <img  v-if="!shucaiactivate"  @click="userclick" src="/shucai.png">
        <img  v-else @click="userclick" src="/shucai-selected.png">
    </div>

    <!-- 路由匹配到的组件将渲染在这里 -->
    <router-view></router-view>

2.3、为其添加点击事件(当图片被点击时,将该图片的Boolean值为false,其余的为true,为显示子组件)

homeclick(){
      // 进行跳转
      this.ganshuoactivate = true;
      this.shucaiactivate = false;
      this.$router.push('/home');
      console.log('home..');
    },
    userclick(){
      this.ganshuoactivate = false;
      this.shucaiactivate = true;
      // 进行跳转
      this.$router.push('/mine/'+this.userid);
      console.log('user..');
    }
  }
this.$router.push('/mine/'+this.userid);
      console.log('user..');
    }
  }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外包猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值