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

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"}]}

 效果:

相关文章:

  • 组件化:软件工程化的基础
  • 工作流引擎-11-开源 BPM 项目 jbpm
  • Spring Boot对一些技术框架进行了统一版本号管理
  • 【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析
  • 「数据采集与网络爬虫(使用Python工具)」【数据分析全栈攻略:爬虫+处理+可视化+报告】
  • 【前端】Vue中使用CKeditor作为富文本编辑器
  • [网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)
  • [Windows]在Win上安装bash和zsh - 一个脚本搞定
  • openssl 怎么生成吊销列表
  • Docker容器创建Redis主从集群
  • 如何排查Redis单个Key命中率骤降?
  • 【Linux系统编程】Ext系列文件系统
  • Ansible 剧本精粹 - 编写你的第一个 Playbook
  • 告别手动绘图!基于AI的Smart Mermaid自动可视化图表工具搭建与使用指南
  • Vue拖拽组件:vue-draggable-plus
  • 如何设计一个支持线上线下的通用订单模块 —— 面向本地生活服务行业的架构思路
  • Portainer安装指南:多节点监控的docker管理面板-家庭云计算专家
  • docker 部署 gin
  • 模型训练相关的问题
  • CFTel:一种基于云雾自动化的鲁棒且可扩展的远程机器人架构
  • 江门官网建站公司/网站推广引流最快方法
  • 宁波seo链接优化/网站排名优化多少钱
  • 电子商务网站费用预算/今天国际新闻最新消息10条
  • 国内最大的网站建设公司排名/如何创建一个app
  • 网站建设网络营销平台: 云搜系统/营销培训心得体会
  • 长春网站建设论坛/鸣蝉智能建站