当前位置: 首页 > web >正文

uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。

在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能。在这两个平台,底层原生引擎在启动时无需等待js引擎初始化,即可直接读取 pages.json 中配置的 tabBar 信息,渲染原生tab。

Tips

  • 当设置 position 为 top 时,将不会显示 icon
  • tabBar 中的 list 是一个数组,最少要配置2个、最多只能配置5个 tab,tab 按数组的顺序排序。
  • tabbar 切换第一次加载时可能渲染不及时,可以在每个tabbar页面的onLoad生命周期里先弹出一个等待雪花(hello uni-app使用了此方式)
  • tabbar 的页面展现过一次后就保留在内存中,再次切换 tabbar 页面,只会触发每个页面的onShow,不会再触发onLoad。
  • 顶部的 tabbar 目前仅微信小程序上支持。需要用到顶部选项卡的话,建议不使用 tabbar 的顶部设置,而是自己做顶部选项卡,可参考 hello uni-app->模板->顶部选项卡。

属性说明:

属性类型必填默认值描述平台差异说明
colorHexColortab 上的文字默认颜色
selectedColorHexColortab 上的文字选中时的颜色
backgroundColorHexColortab 的背景色
borderStyleStringblacktabbar 上边框的颜色,可选值 black/white,black对应颜色rgba(0,0,0,0.33),white对应颜色rgba(255,255,255,0.33)。App 2.3.4+ 、H5 3.0.0+
listArraytab 的列表,详见 list 属性说明,最少2个、最多5个 tab

其中 list 接收一个数组,数组中的每个项都是一个对象,其属性值如下:

属性类型必填说明平台差异
pagePathString页面路径,必须在 pages 中先定义
textStringtab 上按钮文字,在 App 和 H5 平台为非必填。例如中间可放一个没有文字的+号图标
iconPathString图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,当 position 为 top 时,此参数无效,不支持网络图片,不支持字体图标
selectedIconPathString选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px ,当 position 为 top 时,此参数无效
visibleBoolean该项是否显示,默认显示App (3.2.10+)、H5 (3.2.10+)
iconfontObject字体图标,优先级高于 iconPathApp(3.4.4+)、H5 (3.5.3+)

tarBar写于page.json中,与pages,globalStyle并列

示例代码:

"tabBar": {"color": "#999","selectedColor": "#2B9939","borderStyle": "white","list": [{"pagePath" : "pages/index/index","text": "首页","iconPath": "/static/images/tabBar/home.png","selectedIconPath": "/static/images/tabBar/home-h.png"},{"pagePath" : "pages/classfy/classfy","text": "分类","iconPath": "/static/images/tabBar/classify.png","selectedIconPath": "/static/images/tabBar/classify-h.png"},{"pagePath" : "pages/user/user","text": "我的","iconPath": "/static/images/tabBar/user.png","selectedIconPath": "/static/images/tabBar/user-h.png"}]}

 效果:

http://www.xdnf.cn/news/10407.html

相关文章:

  • NodeJS全栈开发面试题讲解——P6安全与鉴权
  • Java求职者面试指南:DevOps技术栈深度解析
  • [AI算法] 什么事RoPE scaling
  • 精英-探索双群协同优化(Elite-Exploration Dual Swarm Cooperative Optimization, EEDSCO)
  • 26考研——文件管理_文件系统(4)
  • 【JMeter】性能测试知识和工具
  • ARM P15协处理器指令详解:架构、编程与应用实践
  • Spark on Hive表结构变更
  • 2024年数维杯国际大学生数学建模挑战赛A题飞行器激光测速中的频率估计问题解题全过程论文及程序
  • flutter 构建报错Unsupported class file major version 65
  • Java高效处理大文件:避免OOM的深度实践
  • 大语言模型的推理能力
  • 现代前端框架的发展与演进
  • Spring AI调用Ollama+DeepSeek
  • 链表题解——合并两个有序链表【LeetCode】
  • Linux系统开机自启动配置
  • 如何将内网的IP地址映射到外网?详细方法与步骤解析
  • Tomcat优化篇
  • 小白的进阶之路系列之九----人工智能从初步到精通pytorch综合运用的讲解第二部分
  • IDEA,Spring Boot,类路径
  • Vue框架2(vue搭建方式2:利用脚手架,ElementUI)
  • SQL注入攻击的方法与预防
  • 神经网络-Day42
  • 量化面试绿皮书:1. 海盗分金博弈
  • 【C/C++】面试常考题目
  • (面试)获取View宽高的几种方式
  • vim 的基本使用
  • 华为深度学习面试手撕题:手写nn.Conv2d()函数
  • C++: STL简介与string类核心技术解析及其模拟实现
  • vue3动态路由的实现以及目录权限的设置