请教一下微信小程序的问题,参考滴滴的 tabbar

2025 年 12 月 1 日
 MagicalCarl

滴滴出行的微信小程序底部的 tabbar 明显不是原生的 tabbar ,可以看到图标有动画
明显又不是使用 custom-tab-bar 实现的,因为用 custom-tab-bar 每次切换会让页面闪一下
这个 tabbar 是怎么实现的如此流畅,大家有什么头绪吗?

或者是有没有滴滴的同学来解答一下,感谢!

2975 次点击
所在节点    程序员
19 条回复
wednesdayco
2025 年 12 月 1 日
这还需要 DD 来回答么?
lonjin
2025 年 12 月 1 日
一个主页面,tab 页面都是写成组件的形式,点击 tabbar 来回切换组件而已。
MagicalCarl
2025 年 12 月 1 日
我一直觉得把页面写成组件不够优雅,可能加载时会加载所有页面会变卡,看来是我想多了
refsdiary
2025 年 12 月 1 日
微信提供得 api 是不一样得。用户多得小程序 有内测得 api 普通小程序没有得。
Cloudust
2025 年 12 月 1 日
看了一下,甚至没有兼容安卓 3 个按钮底部的安全区。要么就是自定义 tabbar 用 switchTab 切换页面,这样每个页面都要放一份。要么就写到一个页面里,内容做组件动态切换即可。动画其实没啥,svg 换颜色加个 scale
ZettarYuFan
2025 年 12 月 1 日
这种大体量的小程序,应该有不少东西是微信专门开放用的
members
2025 年 12 月 1 日
“因为用 custom-tab-bar 每次切换会让页面闪一下”

这是因为用了分包。
正常用 custom-tab-bar 切换是不会闪的。
dust2
2025 年 12 月 1 日
@members 不分包也会卡, 而且 tabbar 几屏的首屏 应该没人分包吧
op351
2025 年 12 月 1 日
"custom-tab-bar 每次切换都会闪"是不正常的 应该是你的代码有问题
第一次切换会闪一下是正常的 是微信的问题 微信开放社区有对应案例的解决方案
不过我觉得第一次闪一下倒无所谓 感知不强 我是没处理
MagicalCarl
2025 年 12 月 1 日
@op351 #9 是的 是第一次会闪一下,但滴滴的第一次没有闪,所有我好奇滴滴是怎么做到的
Huelse
2025 年 12 月 1 日
也许是一张大图然后移动位置显示的图标?可以试试滴滴的框架 https://mpxjs.cn/
3282361
2025 年 12 月 1 日
滴滴小程序用的是“封面方案”,你看到的 tabbar 和对应的几个页面其实是在一个页面上实现的,应该就是使用条件渲染模拟出的 tabbar 切换效果,所以切换较快
lisongeee
2025 年 12 月 1 日
微信小程序的 tab 其实是多个页面并且是类似 android activity 的层叠渲染,切换页面不会丢失内部状态

滴滴首页滑动一下,切底部其它 tab 再切回来,滑动状态被重置了

其实就是正常的单页面 h5 网页 app 开发逻辑,底部 tab 一个组件,上方一个 slot 根据不同的条件渲染
wen20
2025 年 12 月 1 日
不闪一下的 tab 应该都是在同一个页面中,类似 vue 的单页应用,猜测。
nijjba
2025 年 12 月 1 日
开 skyline 渲染就不会闪
tsja
2025 年 12 月 1 日
我的小程序就是手搓的 tabbar 自定义组件,也没有闪屏问题
veike
2025 年 12 月 1 日
@refsdiary 腾讯云官方小程序也闪那么一下,同事用 uniapp 搞的就没闪,我原生写的就会闪,没研究怎么搞的。
zy445566
2025 年 12 月 1 日
https://github.com/didi/dimina
滴滴的小程序用的是这个
shebaoting
2025 年 12 月 1 日
看这个。很简单的逻辑。https://www.unibest.tech/base/2-tabbar

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1176039

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX