如何使用vant配置Tabbar

简介: 如何使用vant配置Tabbar

如何使用vant配置Tabbar

本文讲解如何通过vant配置Tabber功能。

首先肯定是通过vant官网找到Tabber

然后我们创建一个components文件夹,再到里面创建一个common文件夹,然后创建TabbarView.vue组件

内容具体如下:

<template>
  <van-tabbar v-model="active">
    <van-tabbar-item icon="home-o" :active-icon="activeIcon('home')" to="/index">首页</van-tabbar-item>
    <van-tabbar-item icon="search" :active-icon="activeIcon('search')" to="/point">知识点</van-tabbar-item>
    <van-tabbar-item icon="friends-o" :active-icon="activeIcon('friends')" to="/exam">考试</van-tabbar-item>
    <van-tabbar-item icon="setting-o" :active-icon="activeIcon('setting')" to="/my">我的</van-tabbar-item>
  </van-tabbar>
</template>
<script>
export default {
  data() {
    return {
      active: 0,
      icons: {
        home: { normal: 'home-o', active: 'home' },
        search: { normal: 'search', active: 'search' },
        friends: { normal: 'friends-o', active: 'friends' },
        setting: { normal: 'setting-o', active: 'setting' },
      },
    };
  },
  methods: {
    activeIcon(icon) {
      return this.active === Object.keys(this.icons).indexOf(icon)
        ? this.icons[icon].active
        : this.icons[icon].normal;
    },
  },
};
</script>

代码详细解释:

需要搭配router下面的index.js使用

  • HTML 部分
<template>
  <van-tabbar v-model="active">
    <!-- 第一项:图标为 home-o(未选中时的图标),
         选中时的图标为“home”,跳转至“/index”路径 -->
    <van-tabbar-item icon="home-o" :active-icon="activeIcon('home')" to="/index">首页</van-tabbar-item>
    <!-- 第二项:图标为 search(未选中时和选中时都是同一个图标),
         跳转至“/point”路径 -->
    <van-tabbar-item icon="search" :active-icon="activeIcon('search')" to="/point">知识点</van-tabbar-item>
    <!-- 第三项:图标为 friends-o(未选中时的图标),
         选中时的图标为“friends”,跳转至“/exam”路径 -->
    <van-tabbar-item icon="friends-o" :active-icon="activeIcon('friends')" to="/exam">考试</van-tabbar-item>
    <!-- 第四项:图标为 setting-o(未选中时的图标),
         选中时的图标为“setting”,跳转至“/my”路径 -->
    <van-tabbar-item icon="setting-o" :active-icon="activeIcon('setting')" to="/my">我的</van-tabbar-item>
  </van-tabbar>
</template>
  • JavaScript 部分
<script>
export default {
  // 组件内部的数据
  data() {
    return {
      // 当前选中的选项卡序号,默认为第一个(序号从0开始)
      active: 0,
      // 定义各个图标在选中和未选中状态下应该显示的图标名称
      icons: {
        home: { normal: 'home-o', active: 'home' },
        search: { normal: 'search', active: 'search' },
        friends: { normal: 'friends-o', active: 'friends' },
        setting: { normal: 'setting-o', active: 'setting' },
      },
    };
  },
  // 定义组件内部的方法
  methods: {
    // 返回指定图标在当前选中状态下应该显示的图标名称
    activeIcon(icon) {
      // 获取当前选中的选项卡序号
      const activeIndex = Object.keys(this.icons).indexOf(icon);
      // 判断当前图标是否被选中,是则返回对应的选中状态的图标名称,否则返回未选中状态的图标名称
      return this.active === activeIndex ? this.icons[icon].active : this.icons[icon].normal;
    },
  },
};
</script>

整个代码部分使用了 Vue.js 的单文件组件结构,在 template 标签中定义了该组件的 HTML 内容,在 script 标签中定义了该组件的 JavaScript 内容。

其中,组件中包含了四个选项卡,并通过 v-model="active" 将当前选中的选项卡序号绑定到 active 属性,实现了选项卡的切换。

组件中还定义了一个方法 activeIcon(icon),该方法根据当前选中状态返回给定图标的相应名称。其中 icons 对象保存了每个图标在不同状态下应该当前显示名称。在该方法中,先获取当前图标在 icons 对象中的序号,然后根据当前是否选中来判断返回对应的名称。

当我们想要使用的时候只需要按照如下图的方式就可以了。

如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯,企业面试内容,编程资源,如何写出可以让大厂面试官眼前一亮的简历等内容,让大家更好学习编程,我的抖音,B站也叫极客李华。大家喜欢也可以关注一下

相关文章
|
Web App开发 资源调度 JavaScript
Vue初学之使用npm搭建Vue环境
Vue初学之使用npm搭建Vue环境
1285 0
|
测试技术 Shell API
Playwright系列(3):运行测试用例
Playwright系列(3):运行测试用例
608 1
|
文字识别 Java API
SpringBoot+Tess4j实现牛逼的OCR识别工具
SpringBoot+Tess4j实现牛逼的OCR识别工具
2207 0
SpringBoot+Tess4j实现牛逼的OCR识别工具
|
图形学
Unity3D简陋版跑酷游戏
Unity3D简陋版跑酷游戏
Unity3D简陋版跑酷游戏
|
自然语言处理 搜索推荐 程序员
【Python】如何使用pip,安装第三方库和生成二维码、操作Excel
【Python】如何使用pip,安装第三方库和生成二维码、操作Excel
433 0
dd.biz.util.scan调用后返回报错,能正常扫码,就是返回的时候会报错
这段代码实现了调用钉钉的扫一扫功能,扫描二维码后获取数据并显示在弹窗中。如果扫描成功,会将扫描结果赋值给 `formInfo.projectNo` 和 `checkProjectName`,并在弹窗中提示用户扫描成功的内容。如果扫描失败,则会显示一个提示信息。
|
存储 机器学习/深度学习 运维
Elasticsearch 集群节点的角色与职责
【8月更文挑战第25天】
637 6
|
存储 并行计算 算法
R语言性能优化:提升代码运行速度的技巧
【8月更文挑战第28天】R语言的性能优化是一个复杂而细致的过程,需要综合考虑数据结构、算法、并行计算、编译以及内存管理等多个方面。通过应用上述技巧,你可以在不牺牲代码可读性和灵活性的前提下,显著提高R代码的执行效率。记住,优化是一个迭代的过程,需要不断地测试、分析和调整你的代码。
1315 6
|
移动开发 前端开发 开发者
|
小程序
开发小程序只要几百块?
开发小程序只要几百块?
2797 0