Vue 的TabBar点击 实现照片和页面切换

本文指导如何在Vite项目中正确引用本地图片资源,提倡直接使用本地路径,并演示了如何通过点击切换组件显示不同状态的图片。同时介绍了tab栏组件的实现和路由跳转技巧。

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

1、本地模拟数据 建议不要用@来进行引入,直接调用本地的地址,即 ../../assets/.../.../...png

<template>
  <div class="tab-bar">
    <template v-for="(item, index) in tabbarData" :key="index">
      <div class="tab-bar-item" 

             <!-- 文字颜色的变化 -->
           :class="currentIndex===index? 'active': ' '"

             <!-- 事件点击 来切换路由和当前的index-->
           @click="itemClick(item,index)"  >

           <!-- 直接使用if 来进行渲染不同的照片 实现切换效果 -->
           <!-- 因为使用的vite来进行开发 所以需要对静态本地照片进行处理 -->

          <img v-if=" currentIndex !== index " :src="getNewURL(item.image)"  />

          <img v-else :src="getNewURL(item.imageActive)"  />

          <span>{{ item.text }}</span>

      </div>
    </template>
  </div>
</template>

<script setup>
import { getNewURL } from "@/utils/getAssertImage";
import { ref } from "@vue/reactivity";

import { useRouter } from "vue-router";
const router = useRouter();
// 动态记录目前点击的位置
let currentIndex = ref(0)

const tabbarData = [
  {
    text: "首页",
    image: "tabbar/tab_home.png",
    imageActive: "tabbar/tab_home_active.png",
    // 路由跳转
    path: "/home",
   
  },
  {
    text: "收藏",
    image: "tabbar/tab_favor.png",
    imageActive: "tabbar/tab_favor_active.png",
    // 路由跳转
    path: "/favor",
  
  },
  {
    text: "订单",
    image: "tabbar/tab_order.png",
    imageActive: "tabbar/tab_order_active.png",
    // 路由跳转
    path: "/order",
  
  },
  {
    text: "消息",
    image: "tabbar/tab_message.png",
    imageActive: "tabbar/tab_message.png",
    // 路由跳转
    path: "/message",
    
  },
];

  function itemClick(item,index){

    currentIndex.value = index

    router.push(item.path);

  }

</script>

<style  scoped>
.tab-bar {
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50px;

  border-top: 1px solid #f3f3f3;
}
.tab-bar-item {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;

  /* 纵向排列 */
  flex-direction: column;
}
.tab-bar-item img {
  width: 32px;
}
.tab-bar-item span {
  margin-top: 3px;
  font-size: 12px;
}
.active{
  color: #FF9645;
}
</style>

### 回答1: Vue tabBar 页面普通页面的区别在于,tabBar 页面通常具有选项卡式的页面布局,其中可以通过点击选项卡切换不同的内容页面。而普通页面则没有这种选项卡式的布局。 在 Vue 中,可以使用 Vue-Router 实现 tabBar 页面的开发。通过 Vue-Router,我们可以创建一个包含多个子页面的路由,每个子页面对应一个选项卡,当用户点击选项卡时,Vue-Router 会自动切换到对应的子页面,从而实现选项卡式页面布局。 除了选项卡式的布局外,tabBar 页面还通常包含一个选项卡栏,用于显示当前选中的选项卡其他选项卡的状态。在移动端应用中,tabBar 页面经常用于底部导航栏的实现。 总的来说,Vue tabBar 页面与普通页面相比,具有更为灵活的布局更好的用户交互体验。 ### 回答2: 在Vue中,tabBar页面普通页面有一些区别。 首先,tabBar页面通常是作为app底部导航栏的一部分来展示的,而普通页面没有底部导航栏。tabBar页面一般用于展示一组相关的功能页面,例如首页、分类、购物车个人中心等。 其次,tabBar页面切换时会保持各自的状态,而普通页面切换时会重新加载并且丢失之前的状态。这意味着,当我们从一个tabBar页面切换到另一个tabBar页面时,之前输入的内容或者选择的选项都会被保留下来,而在普通页面之间的切换中,我们需要重新填写内容或者重新进行选择。 另外,tabBar页面通常有一个固定的导航栏,可以方便地切换不同的功能页面。而普通页面没有固定的导航栏,可以根据需要自定义布局展示内容。 最后,tabBar页面一般用于多个功能页面之间的切换,而普通页面用于展示单个页面的内容。tabBar页面的设计可以使用户快速地切换到目标页面,提高用户的使用体验。 总而言之,tabBar页面普通页面在展示方式、状态保留导航方式等方面存在一些区别,根据具体的需求设计,选择适合的页面类型可以更好地满足用户的需求提升用户体验。 ### 回答3: Vue tabBar 页面普通页面的区别在于其页面布局功能方面的不同。 首先,Vue tabBar 页面通常包含一个顶部的导航栏,用于切换不同的页面内容,比如主页、分类、购物车等。而普通页面一般只有一个内容区域,不包含导航栏。 其次,在功能方面,Vue tabBar 页面通过点击导航栏上的不同选项来切换页面内容,而普通页面一般通过链接或按钮等方式进入不同的页面。 另外,Vue tabBar 页面通常具有底部的固定导航栏,其中常用的选项会被高亮显示或者通过图标表示,方便用户快速切换页面。而普通页面则没有固定的底部导航栏,用户需要通过页面上的链接或按钮来手动切换页面。 此外,Vue tabBar 页面通常具有页面切换动画效果,可以增加用户体验。而普通页面一般没有这种动画效果。 综上所述,Vue tabBar 页面普通页面的区别主要在于页面布局功能方面的不同。Vue tabBar 页面通过顶部导航栏底部固定导航栏来实现页面切换,并具有切换动画效果,而普通页面则是通过链接或按钮等方式进行页面切换
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值