定义footbar子组件

需要注意的是:useRouter()用来记录当前的路由名称,以便van-tabbar组件显示对应的高亮状态

<template><div class="navFooter"><van-tabbar v-model="active" active-color="#26A69A" inactive-color="#505660"><van-tabbar-item replace :to="item.to" :name="item.name" v-for="(item,index) in navList" :key="index"><span>{{item.text}}</span><template #icon="props"><img :src="props.active ? item.active : item.inactive" /></template></van-tabbar-item></van-tabbar></div>
</template>
<script>import { ref } from 'vue';import { useRouter } from 'vue-router'export default {setup() {const router = useRouter();const active = ref(router.currentRoute.value.name);const navList = [{to: '/',name: 'home',text: '首页',active: require('@img/tabbar1-1.png'),inactive: require('@img/tabbar1.png'),},{to: '/list',name: 'list',text: '列表',active: require('@img/tabbar2-2.png'),inactive: require('@img/tabbar2.png'),},{to: '/cart',name: 'cart',text: '购物车',active: require('@img/tabbar3-3.png'),inactive: require('@img/tabbar3.png'),},{to: '/mine',name: 'mine',text: '我的',active: require('@img/tabbar4-4.png'),inactive: require('@img/tabbar4.png'),}]return {active,navList};},}
</script>
<style lang='less' scoped>.navFooter {height: 98px;position: fixed;bottom: 0;left: 0;right: 0;width: 100%;}
</style>

app.vue中引入组件

$route.meta.navFooterShow获取router.js中需要显示底部tabbar的配置

<template><div id="app"><router-view></router-view><NavFooter v-if="$route.meta.navFooterShow"></NavFooter></div>
</template><script>import NavFooter from './components/NavFooter.vue'export default {components: {NavFooter},}
</script><style lang="less">/* 一些公共样式 */
</style>

router.js

// navFooterShow:true 显示底部导航栏
const routes = [{path: '/',name: 'home',component: () => import('../views/home/home.vue'),meta: {navFooterShow: true,}},{path: '/list',name: 'list',component: () => import('../views/list/list.vue'),meta: {navFooterShow: true,}},{path: '/cart',name: 'cart',component: () => import('../views/cart/cart.vue'),meta: {navFooterShow: true,}},{path: '/mine',name: 'mine',component: () => import('../views/mine/mine.vue'),meta: {navFooterShow: true,}}
]

Tabbar:底部导航栏相关推荐

  1. flutter TabBar 底部导航栏

    更多文章请查看 lutter从入门 到精通 实现底部导航栏并点击切换页面可简述为有三种方式 TabBar + TabBarView BottomNavigationBar + BottomNaviga ...

  2. uView(Tabbar 底部导航栏)

    (一)第一种方式 1,每个菜单页面都要 "首页" "发布" "我的" 每个页面都要 <template><view> ...

  3. Vue - tabbar(底部导航栏)

    文章目录 一.TabBar实现思路 二.assets文件夹 2.1 在App.vue里面动态引用css文件 三.基本搭建 四.TabBar和TabBarItem组件封装 4.1 TabBar组件封装 ...

  4. 小程序 底部导航栏(tabBar)图标的正确做法

    许多人都认为小程序系统的底部导航栏特别不好看,为了美观而选择自定义,从此身陷漩涡无法自拔.其实真正的原因是图标的图片处理不当(说白了就是前端和设计太菜了),导致会有线条变粗,间距不当的视觉感受. 除小 ...

  5. 2_flutter_TextField(文本框),TabBar(选项卡),bottomNavigationBar(底部导航栏)

    1_TextField(文本框) import 'package:flutter/material.dart';void main() {runApp(MaterialApp(home: MyEdit ...

  6. 微信小程序 实现底部导航栏tabbar

    参考链接: (1)微信小程序底部导航Tabbar https://www.cnblogs.com/huangjialin/p/6278429.html (2)小程序自定义tabbar实现中间图标突出效 ...

  7. 【Flutter】底部导航栏实现 ( BottomNavigationBar 底部导航栏 | BottomNavigationBarItem 导航栏条目 | PageView )

    文章目录 一.Scaffold 组件 二.底部导航栏整体架构 三.BottomNavigationBar 底部导航栏 四.BottomNavigationBarItem 导航栏条目 五.PageVie ...

  8. ionic3 动态设置tabs页面底部导航栏隐藏,并显示输入框添加评论

    1.先上原始效果图:                                        2.完成后效果                                2.实现思路: ion ...

  9. 微信小程序从零开始开发步骤(三)底部导航栏

    上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...

最新文章

  1. Zookeeper watch机制
  2. java struts2配置_Struts2初始化配置的问题
  3. 又一年度热销爆款,OPPO R11上市一个月勇夺线下销量第一
  4. 岭回归与Lasso回归
  5. 【GIF动画+完整可运行源代码】C++实现 选择排序——十大经典排序算法之二
  6. linux下搭建vsftp锁定根目录,Linux服务搭建之vsftp
  7. android 访问web.py,Appium 测试 Android 时,python 用例调用 Webdriver.remote 后无回应
  8. lua与c若干问题 - 专职C++ - C++博客
  9. 【转载】六合一调试神器TTL转USB模块
  10. 《数字图像处理第二版》第三章部分习题
  11. McAfee官方卸载工具下载及使用
  12. 物联网从业者必须知道的知识:IMSI号介绍与解析
  13. 业务:杭州某私募基金公司商业模式
  14. 三角脉冲信号的表达式_脉冲发生器产生一个单三角脉冲,其波形如图所示,例1写出电压U 与.pdf...
  15. JAVA实现Excel文件的导入导出
  16. asp.net 实现word在线阅读
  17. 大数据开发工程师是做什么的?
  18. 860-什么是MTU?
  19. layui-icon常用记录
  20. 使用计算机录音需要准被硬件和,电脑音频的制作及录音分析

热门文章

  1. Android 检测USB连接状态
  2. 在元宇宙与现实世界的碰撞中 如何更好实现经典IP上链?
  3. NCE4 L1 Finding Fossil Man
  4. 2022 CCF BDCI 返乡发展人群预测 微弱提升(特征离散化)
  5. Access、SQLServer以及SQLite的日期时间差计算
  6. 记:瞎搞东西——电源的调制
  7. 云服务器虚拟机提示内存不足是什么情况?
  8. 安装完原版win7后遭遇连USB都没法使用的窘境
  9. Adobe Lightroom2023:完美的数字照片管理和处理软件
  10. 【C++ 深入浅出】C++可以使用变量作为数组长度吗