返回顶部
首页 > 资讯 > 前端开发 > node.js >微信小程序如何自定义tabBar在uni-app的适配
  • 422
分享到

微信小程序如何自定义tabBar在uni-app的适配

2024-04-02 19:04:59 422人浏览 独家记忆
摘要

这篇文章给大家分享的是有关微信小程序如何自定义tabBar在uni-app的适配的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。要在微信小程序中,实现一个中间图标突出显示的异形导航

这篇文章给大家分享的是有关微信小程序如何自定义tabBar在uni-app的适配的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。


要在微信小程序中,实现一个中间图标突出显示的异形导航栏。

如下图

微信小程序如何自定义tabBar在uni-app的适配

实现方法设计

要做这种异形的导航栏,用直接在配置文件里面写list的方法肯定做不到。那么,就有以下两种可替代方法。

  1. 在每一个页面都加载一个tabBar组件,与页面同时渲染。

  2. 设置自定义tabBar,修改tabBar的样式。

优缺点分析:方法1实现起来略为简单,但是会出现代码可重用率低,降低性能,已经界面跳动等问题。方法2则是微信官方提供的,自定义方式,相信在性能方面也会有很大的优势。故选择方法2。

1. 查看文档及官方Demo

官方文档

简要描述一下就是需要在根目录中加入一个custom-tab-bar目录,里面的文件结构与自定义组件的结构一致。然后再在小程序配置文件中修改tabbar为custom模式。

官方代码

主要重点为三个部分

配置文件

微信小程序如何自定义tabBar在uni-app的适配

custom-tab-bar目录

微信小程序如何自定义tabBar在uni-app的适配

页面生命周期中的设置索引方法

微信小程序如何自定义tabBar在uni-app的适配

这段代码其实很容易理解,pageLifetimes就是监听组件所在页面的生命周期。上述代码就是监听页面显示。当页面显示后,获取到tabBar的对象,然后再设置tabBar中的index索引。

2. 迁移到uni-app框架

上面的方法是使用微信小程序的开发方式,而我使用的是uni-app框架开发微信小程序的。所以我们需要把它们移植到uni-app框架内。

配置文件的修改

uni-app中,page.JSON被编译为微信小程序的app.json。所以,我们直接修改page.json

微信小程序如何自定义tabBar在uni-app的适配

custom-tab-bar目录的适配

我们知道,uni-app使用的是类Vue开发,将一个Vue文件编译为四个微信页面文件(wxml,wxss,json,js)。那么,是否可以直接写一个custom-tab-bar.vue的文件呢?刚开始我也是这么想的,后来发现uni-app只会编译page目录和component目录下的vue文件。而微信小程序要求custom-tab-bar必须在项目的根目录下。那么就只能在uni-app下创建一个custom-tab-bar目录,并老老实实写微信四件套了。

微信小程序如何自定义tabBar在uni-app的适配

写完后,uni-app会将该目录完美的复制至微信小程序项目的根目录。

tab页面内的适配方法

这个在我实际开发中,是最令我头痛的了。因为微信小程序的this引用与uni-app的this引用并不相同。所以如果直接复制代码是会编译出错的。而另一个问题则是,uni-app并未提供pageLifetimes的事件监听。

在我经过一番摸索之后,发现将设置索引方法写在onShow事件里面,效果是等效的。接下来便只剩下this的问题了。

如果直接复制的话,会出现无任何效果的情况

微信小程序如何自定义tabBar在uni-app的适配

因为uni-app的this引用不一样,所以它在判断getTabBar的时候,获取的是“undefined”所以不会执行下面的操作。如果你将判断去掉,则会直接报“undefined”错误。

难道实现不了?其实不然,万变不离其宗。uni-app也是编译到小程序的,所以绝对有迹可循。

我们首先看看uni-app里面this的内容。

微信小程序如何自定义tabBar在uni-app的适配

我们可以很明显的看到里面有个$mp的对象,说明这应该是微信小程序专用的对象。接下来我们继续分析$mp

微信小程序如何自定义tabBar在uni-app的适配

这里面有一个隐藏很深的getTabBar方法,我们直接调用它,和在微信小程序里面调用this.getTabBar是等效的。

所以我们就可以把onShow里面的内容写成这样。

微信小程序如何自定义tabBar在uni-app的适配

一些优雅点的封装

设置索引方法独立出来

在methods对象中,添加

setTabBarIndex(index){
      if (typeof this.$mp.page.getTabBar === 'function' &&
        this.$mp.page.getTabBar()) {
        this.$mp.page.getTabBar().setData({
          selected:index
        })
      }
    }

使用mixin避免重复书写复制

main.js中,添加

Vue.mixin({
  methods:{
    setTabBarIndex(index){
      if (typeof this.$mp.page.getTabBar === 'function' &&
        this.$mp.page.getTabBar()) {
        this.$mp.page.getTabBar().setData({
          selected:index
        })
      }
    }
  }
})

混入后的使用

在页面文件中

onShow() {
      this.setTabBarIndex(0) //index为当前tab的索引
    }

感谢各位的阅读!关于“微信小程序如何自定义tabBar在uni-app的适配”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 微信小程序如何自定义tabBar在uni-app的适配

本文链接: https://lsjlt.com/news/69448.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序如何自定义tabBar在uni-app的适配
    这篇文章给大家分享的是有关微信小程序如何自定义tabBar在uni-app的适配的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。要在微信小程序中,实现一个中间图标突出显示的异形导航...
    99+
    2024-04-02
  • 微信小程序如何自定义tabbar组件
    这篇文章主要讲解了“微信小程序如何自定义tabbar组件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何自定义tabbar组件”吧!由于项目需求,必须自己写组件:第一步:在App...
    99+
    2023-06-14
  • 微信小程序自定义tabbar组件
    本文实例为大家分享了微信小程序自定义tabbar组件的具体代码,供大家参考,具体内容如下 由于项目需求,必须自己写组件: 第一步:在App.json中配置tabBar,自定也组件也必...
    99+
    2024-04-02
  • 微信小程序自定义tabBar(实操)
    文章目录 一、前言二、固定效果图实现步骤实现步骤完整代码-矢量图images图片app.json代码 三、自定义效果图实现步骤实现步骤完整代码-矢量图images图片app.json代码custom-tab-bar下的...
    99+
    2023-08-20
    微信小程序 小程序 微信
  • 微信小程序中怎么自定义tabBar
    微信小程序中怎么自定义tabBar,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、前言很多时候,小程序自带的tabBar不能够满足项目需求,这个时候就需要我们自定义tabBa...
    99+
    2023-06-20
  • 微信小程序中使用 TDesign 自定义 TabBar
    文章目录 一、按照小程序官方文档配置 TabBar(app.json文件内)二、在小程序根目录(与 pages 平级)新建 custom-tab-bar(必须使用此名称) 文件夹三、右击 cu...
    99+
    2023-09-11
    微信小程序 tdesign 小程序
  • 微信小程序自定义tabBar的步骤记录
    目录1、前言 2、自定义tabBar样式 3、引入custom-tab-bar及相关配置4、完整Demo总结1、前言 很多时候,小程序自带的tabBar不能够满足项目需求,这个时候...
    99+
    2024-04-02
  • 【小程序】微信小程序自定义 tabbar以及隐藏有些页面的tabbar
    分析: 选中时显示背景和文字,图标变换为选中状态的图标默认状态下,进入小程序显示的是中间的 “地图”选中 “预约”时,隐藏tabbar ,且导航栏显示 返回 按钮,点击返回 “地图” 整体效果 整...
    99+
    2023-09-09
    微信小程序 小程序 前端
  • 【微信小程序】-- 案例 - 自定义 tabBar(四十六)
    💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &...
    99+
    2023-08-17
    微信小程序 小程序 前端
  • 关于微信小程序自定义tabbar问题详析
    目录1、首先按照官方组件在app.json中定义tabbar2、在项目根目录创建自定义tabbar组件3、组件内容如下:4、在pages下的各个页面组件引入tabbar总结1、首先按...
    99+
    2024-04-02
  • 微信小程序自定义tabbar问题怎么解决
    这篇文章主要介绍“微信小程序自定义tabbar问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序自定义tabbar问题怎么解决”文章能帮助大家解决问题。1、首先按照官方组件在app...
    99+
    2023-06-29
  • 微信小程序自定义tabbar栏实现过程讲解
    目录前言一、自定义tabbar栏配置二、添加自定义tabbar栏组件添加组件代码创建全局字段在组件中保存重要字段三、效果展示前言 昨天主管突然给我说微信小程序默认的 tabBar 不...
    99+
    2023-02-01
    微信小程序tabbar栏 小程序tabbar栏
  • uni-app 开发微信小程序定位功能
    目录一、注册账号二、创建应用和Key1.进入控制台2.创建应用3.创建Key三、登录微信公众平台后台四、下载微信小程序JavaScriptSDK五、代码实现六、一般获取经纬度地址七、...
    99+
    2024-04-02
  • 小程序自定义tabbar如何实现
    小编给大家分享一下小程序自定义tabbar如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tabBar如果小程序是一个多 tab 应用(客户端窗口的底部或顶...
    99+
    2023-06-26
  • 微信小程序如何实现自定义菜单切换栏tabbar组
    这篇文章将为大家详细讲解有关微信小程序如何实现自定义菜单切换栏tabbar组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:wxml代...
    99+
    2024-04-02
  • 微信小程序自定义渐变的tabbar导航栏功能
    做为自己的一个小笔记,以免后面再用到 1,在需要自定义的界面的json文件中加入下面代码 "navigationStyle": "custom&...
    99+
    2024-04-02
  • 解决微信小程序tabBar自定义弹窗遮挡不住
    背景 最近开发微信小程序发现一个问题,就是微信小程序官方自带的tabbar层级很高,自定义modal盖不住tabbar的问题;翻阅官方的社区,很多同学说 设置z-index:99999;可以解决这个问...
    99+
    2023-09-01
    微信小程序 小程序 微信
  • uniapp微信小程序底部动态tabBar的解决方案(自定义tabBar导航)
    目录需求实现原理实现总结需求 分包中如果有6个页面A B C D E F,这6个页面可以作为tabbar页面进行展示,具体配置通过后台接口返回(页面数量限制依然存在 2 - 5),比...
    99+
    2024-04-02
  • 【微信小程序开发】自定义tabBar案例(定制消息99+小红心)
    🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 🌐 推荐一款找工作神器网站: 点击跳转牛客网 |笔试题库|面试经验|实...
    99+
    2023-08-17
    微信小程序 小程序 微信 前端 前端框架
  • 微信小程序如何实现tabBar
    这篇文章主要介绍了微信小程序如何实现tabBar,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:1、效果展示2、原理:在app.js...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作