uin-app微信小程序自定义tabBar底部菜单实现简单示例(工作笔记)

uniapp 自定义微信小程序 tabBar 导航栏 使用微信小程序 custom-tab-bar 自定义 tabBar 导航栏的主要实现过程 阅读详情

在微信小程序中实现自定义 tabBar 可以为你的应用提供更加灵活和个性化的底部导航菜单。由于微信小程序的官方 tabBar 配置功能有限,自定义 tabBar 成为了很多开发者实现复杂底部导航的选择。以下是一个简单的示例,说明如何在小程序中实现自定义 tabBar。

步骤 1: 配置 app.json

首先,你需要在 app.json 中配置 tabBar 的基础信息,但 custom 字段需要设置为 true 来启用自定义 tabBar。

{
  "pages": [
    "pages/index/index",
    "pages/logs/logs",
    "pages/profile/profile"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle": "black"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      },
      {
        "pagePath": "pages/profile/profile",
        "text": "我的"
      }
    ],
    "custom": true,
    "color": "#7A7E83",
    "selectedColor": "#3cc51f",
    "borderStyle": "black"
  }
}

步骤 2: 创建自定义 tabBar 组件

在项目的根目录下创建一个名为 custom-tab-bar 的文件夹,并在其中创建所需的文件(如 index.js、index.json、index.wxml、index.wxss)。

index.js

这里可以处理逻辑,比如根据当前页面切换 tab。

Component({
  data: {
    selected: 0,
    list: [{
      pagePath: '/pages/index/index',
      text: '首页'
    }, {
      pagePath: '/pages/logs/logs',
      text: '日志'
    }, {
      pagePath: '/pages/profile/profile',
      text: '我的'
    }]
  },
  methods: {
    switchTab: function(e) {
      const data = e.currentTarget.dataset;
      if (this.data.selected === data.index) return;
      wx.switchTab({url: data.path});
    },
    onShow: function(e) {
      // 当 tabBar 显示时触发,可以根据需要获取当前页面路径
      const { path } = getCurrentPages().pop();
      this.setData({
        selected: this.data.list.findIndex(tab => tab.pagePath === path)
      });
    }
  }
});
index.json

定义组件的配置信息。

{
  "usingComponents": {}
}
index.wxml

定义 tabBar 的结构。

<view class="tab-bar">
  <block wx:for="{{list}}" wx:key="index" wx:for-index="idx">
    <view class="tab-item {{selected === idx ? 'active' : ''}}" data-path="{{item.pagePath}}" data-index="{{idx}}" bindtap="switchTab">
      {{item.text}}
    </view>
  </block>
</view>
index.wxss

添加样式。

.tab-bar {
  display: flex;
  justify-content: space-around;
  background-color: #fff;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50px;
}

.tab-item {
  padding: 10px 0;
  text-align: center;
}

.tab-item.active {
  color: #3cc51f;
}

步骤 3: 在 app.js 中使用自定义 tabBar

在 app.js 中引入并使用自定义的 tabBar 组件。

App({
  onLaunch: function () {
    // 在这里可以执行一些启动时的逻辑
  },
  usingComponents: {
    '不同角色,控制查看底部菜单权限
    实现效果1:实体店![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2ca6098eefaf4d55935d9eb8d44116fb.png)
实现效果2:回收公司
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/da1d7b225c064d3ab058176211f65833.png)

【uniapp】开发微信小程序自定义底部tabbar uniapp开发微信小程序自定义底部tabbar 阅读详情

相关推荐

uniapp:自定义底部导航栏

uview>tabbar组件 1、在pages.json中正常定义tabbar逻辑和字段,只需配置tabBar字段list中的pagePath(需以"/"开头)属性即可 "tabBar": { // 设置底部 tab 的表现 "color": "#333333", "selectedColor": "#fa2c19", "borderStyle": "black", "backgroundColor": "#fff", "list": [{ "pagePath": "p.

sunluyi的博客 2万+

uniapp自定义tabBar

uniapp自定义tabBar方案 该方案解决的问题有: 1、不在同一个页面切换组件,可路由跳转,刷新页面显示该路由下的页面信息 2、首次

weixin_45785873的博客 6万+

weblogic 集群搭建,双机部署,相关问题记录

4.5.集群搭建1 参考网址https://wenku.baidu.com/view/76365129cd1755270722192e453610661ed95aa4.html IP地址 端口 角色 192.168.1.160 9001 AdminServer ...

zl386119974的专栏 1670

uniapp里自定义底部导航

uniapp里自定义底部导航

weixin_43340308的博客 1万+

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5680

保姆级教程:用MATLAB搞定双目相机标定,从导入图片到参数解读全流程

本文提供了一份详细的MATLAB双目相机标定全流程指南,涵盖从图片准备到参数解读的每个环节。重点讲解了棋盘格选择、拍摄技巧、MATLAB工具箱设置及参数优化,帮助读者避免常见错误并提升标定精度。特别适合机器人导航、三维重建等领域的开发者。

weixin_33737134的博客 429

uniapp 自定义底部导航栏

在做项目时,经常遇到在现有的框架中无法实现UI图上的样式,比如说将底部导航栏的字体在选中状态下变为渐变色,在浏览器上可以直接修改css样式,但是运行到真机时才发现根本不生效,查阅官方文档才发现app端的根本不支持这些属性更改 下面是我在项目中做底部导航栏的过程 1.首先是用的官方的底部导航栏,具体可以看我的这篇文档https://blog.youkuaiyun.com/weixin_50606255/article/details/116270949 在用这个底部导航栏时,就无法更改字体颜色为渐变色(app端)

weixin_50606255的博客 1万+

液态神经网络(Liquid Neural Networks)从线虫大脑到下一代 AI

液态神经网络(Liquid Neural Networks,LNN)是一类具有动态内部结构的神经网络,其灵感来源于生物神经系统,尤其是大脑中神经元如何以复杂、非线性的方式响应外部刺激。与传统神经网络不同,液态神经网络的每个神经元在处理输入时,不再是静态线性或非线性变换,而是基于一个微分方程模型进行响应。这种建模方式使神经元的行为具有时间连续性和动态适应性。换句话说,它不仅“记住”过去的信息,还能根据当前环境实时调整自身的动态特性,这对于感知、决策、预测等任务都非常关键。

hello.reader 7418

uni-app tabBar 配置:自定义底部导航栏

uni-app中tabBar配置指南 在uni-app中,tabBar用于配置底部导航栏,需在pages.json中设置。基本配置包括: 颜色设置:文字默认颜色(color)、选中颜色(selectedColor)、边框颜色(borderStyle)。 导航项列表(list):每个项需指定页面路径(pagePath)、文字(text)、图标(iconPath)及选中图标(selectedIconPath)。 自定义tabBar:将custom设为true,并指定组件路径(customTabBar),需自行实

你若盛开,清风自来 3729

CXSMILES细则-用于在 SMILES 字符串后存储分子的特殊特征

Chemaxon 扩展 SMILES/SMARTS 用于在 SMILES 字符串后存储分子的特殊特征。任何信息都可以存储在 SMILES 字符串后,只要它们由空格或制表符字符分隔,因为 SMILES 解析器会忽略这些信息,或者将它们作为注释使用。扩展特征以以下格式存储:Chemaxon 的扩展 SMILES/SMARTS 不包含非 ASCII 字符,它们通常以字符代码 n 的形式被转义为 &#n;。在 S-group 中,ASCII 字符“,”、“;”、“|”、“{”、“}”也以这种方式转义。此外,符号“$

ASKCOS博客 402

彻底解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

renkai721的专栏 24万+

uniapp实现自定义tabBar底部导航栏(中间凸起样式)

/ 非微信小程序需隐藏原生tabBar(微信小程序已通过"custom": true配置项隐藏原生tabbar)// 非微信小程序需隐藏原生tabBar(微信小程序已通过"custom": true配置项隐藏原生tabbar)text: '首页',text: '问询',text: '我的',附有vue2/3两种写法,支持h5/app/微信小程序。text: '首页',text: '问询',text: '我的',到这里就基本完成了,

qq_52992456的博客 7908

《大数据最全面试题-Offer直通车》目录

做好这些不用担心试用期不通过:程序员入职新公司如何快速上手项目本人遇到大数据面试题和参考答案(超过1万字精华版)大数据面试英文自我介绍参考(万字长文)大数据运维应用场景面试题汇总及参考答案(持续更新)万字数据仓库面试题及参考答案数据仓库数据质量监控和处理方法最佳实践数据仓库建模方法万字详解Doris的3种数据模型详解和数据仓库每一层的模型选用大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题最全Hive面试题2024年(2万字详解)Elasticsearch 面试题及参考答

大模型大数据攻城狮的专栏 2647

uni-app自定义底部tabbar

1、前言 因为业务需要,使用uni-app来做小程序,但是底部icon太大了,完全不符合要求,本来看文档找到了下图的属性,以为可以改变大小,但是实验之后,查了资料,只支持App,小程序完全不起作用,所以只有自定义吧,然后又在插件市场找插件,才发现这市场是什么玩意,插件市场的东西太烂了,很多bug,然后我不光要修改自己的bug,还有改插件市场的bug,所以以后能不用uni-app就不用,没错,我就是...

yuanqi3131的博客 1万+

【ArcGIS遇上Python】ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换

由于论文的需要,将MODIS NDVI数据进行投影变换和格式转换,具体操作可以参照:《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》,但是该文章中的做法只能一次性实现一景影像的转换,没法批量,虽然ArcGIS中提供了Batch的方法但是需要挨个添加数据,确定输出路径等等,本文就实现以ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换。先来看投影后的效果: 在实现批量投影转换之前,需要两个投影文件:Sinusoidal.prj和MyAl

智慧空间实验室 3815

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

微信小程序(uniapp)自定义 TabBar

隐藏原生 TabBar在pages.json文件中,将tabBar配置项设置为空或移除,从而隐藏原生 TabBar。创建自定义 TabBar 组件在项目中创建一个全局组件,用于渲染自定义的 TabBar。动态切换页面内容使用或方法切换页面,同时控制 TabBar 的选中状态。全局管理 TabBar 状态通过 Vuex 或全局变量管理当前选中的 TabBar 项,确保状态同步。

Rocky_Time的博客 9013

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

uniapp实现自定义底部tab栏

2、在需要显示自定义底部导航的页面中,引入和使用自定义底部导航组件。表示当前选中的底部标签的索引。点击底部标签时,调用。字段,用于表示每个底部标签的图标和文本。数组,渲染每个底部标签项的图标和文本。事件,将选中的标签索引传递给父组件。1、自定义底部导航组件接收一个。数组作为参数,每个数组项包含。方法切换底部导航,并通过。

温暖前端的博客 2738

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

详细介绍uniapp小程序自定义底部tabbar样式的方法

原生tabBar是相对固定的配置方式,但是默认的样式可能无法满足我们的需求,所以我们需要自定义设置tabbar样式。

m0_74745897的博客 1万+

uni-app自定义tabBar

目前的业务需求是根据不同的角色展示不同的底部tabBar。

weixin_55853065的博客 1万+

uniapp自定义tabbar

uniapp自定义封装tabbar

TYD0313的博客 5166

uni微信小程序自定义tabBar

根据自己的业务需求去进行变更导航栏的样式,当然也可以采用不删除 page.json 中的 tabBar 的方案,只是把 TabBar 当个组件,先在 App.vue 中的 onLaunch 中使用 uni.hideTabBar(OBJECT) 去隐藏 tabBar,然后再每个页面中引用 TabBar 组件,也是可以实现该功能的

m0_67574906的博客 3840

uniapp 如何自定义底部TabBar 且还能使用 uni.switchTab

在pages.json文件下 tabBar选项下有个 height配置项设置为0,这个时候uniapp自带的tabBar已经不会在显示了,当是你还是得需要吧你自定义tabBar所需的页面放进来。在你的项目下面创建一个components文件夹专门放你的自定义组件,然后在新建一个TabBar文件,这里的样式文件可以按照自己的喜好使用scss、less、css文件。在main.js / main.ts文件下 把写好的TabBar组件注册到全局中。这个是index.scss文件下的代码。直接废话不多说上代码。

m0_65629667的博客 1万+

uni-app自定义tabbar

uni-app自定义tabbar 为什么要自定义tabbar呢,虽然说直接在page.json里面直接配置性能可能更好点,但是有时候满足不了我们的需求,比如说,需要鉴权的时候,我们就需要通过不同的用户显示不同的底部 首先page.json里面 因为做tabbar所以默认的配置项必须注释,只留下跳转的路径即可 接下来就在components 里面创建一个tabbar文件 tabbar.vue <template> <view> <view class="uni-tab

小菜鸟的博客 7361

uni-app中如何自定义实现tabbar导航栏

uni-app中如何自定义实现tabbar底部导航栏

weixin_70811193的博客 9176

【uniapp小程序】配置tabbar底部导航栏

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

qq_49002903的博客 9万+
上一篇: Error: 系统错误,错误码:6000100,unbind download url [20240604 17:55:46][wx4ac81e04846f92bb]问题处理记录!
下一篇: 熬夜后出现心悸的情况,身体在想我反映什么信号?
Java000I
博客等级 码龄7年 3335粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java000I

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值