当前位置: 首页 > 微信设置 > 小程序

微信小程序tabbar,小程序二级页面tabbar

  • 小程序
  • 2025-06-07

微信小程序tabbar?首先,采用类navigator跳转方式实现。参考相关博文思路,创建了包含tabbar内容、逻辑、模板和样式的文件结构。在每个页面中引入相应内容,利用JS事件触发页面间跳转。此方法虽能实现功能,但存在明显闪烁现象。原因在于通过navigator和JS事件触发实现页面切换,导致视觉效果不佳。随后,尝试将页面以组件形式实现。那么,微信小程序tabbar?一起来了解一下吧。

小程序二级页面tabbar

在app.json文件里面你看一下自己的tabBar是怎么写的

"tabBar":{

"selectedColor": "#3cc51f",

"list":[{

"pagePath":"pages/index/index",

"iconPath":"images/icon_home.png",

"selectedIconPath":"images/icon_home_selected.png",

"text":"主页"

},{

"pagePath":"pages/car/index",

"iconPath":"images/icon_home.png",

"selectedIconPath":"images/icon_home_selected.png",

"text":"购物车"

},{

"pagePath":"pages/member/index/index",

"iconPath":"images/icon_member.png",

"selectedIconPath":"images/icon_member_selected.png",

"text":"会员中心"

},{

"pagePath":"pages/store/index/index",

"iconPath":"images/20170811112822.png",

"selectedIconPath":"images/20170811113017.png",

"text":"商家中心"

}]

}

我知道最多可以设置5个最少的话没留意可能是你设置的太少了吧 多设置几个试试

TabBar是什么意思

1、tabBar

在app.json文件中添加tabBar节点。tabBar是小程序客户端底部或顶部tab栏的实现。

(1)tabBar相关属性

color:tab上的文字默认颜色,仅支持十六进制颜色。

selectedColor:tab上的文字选中时的颜色,仅支持十六进制颜色。

backgroundColor:tab的背景色,仅支持十六进制颜色。

borderStyle:tabbar上边框的颜色, 仅支持 black / white。

position:tabBar的位置,默认值是: bottom,仅支持 bottom / top。当 position 为 top 时,不显示 icon。

custom:自定义tabBar。

"tabBar":{

"color":"#000000",

"selectedColor":"#336699",

"backgroundColor":"#ffffff",

"borderStyle":"black",

"position":"bottom"

}

(2)list

list:tab的列表。

list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。

pagePath:页面路径,必须在pages 中先定义。

TabBar页面是什么

在uniapp微信小程序中,若需实现动态的tabBar,可以按照以下步骤进行配置与实现。首先,需要定义一个自定义的底部导航,其数据通过后台接口获取。具体来说,将需要配置为tab的页面内容抽取成组件,然后在相应的页面直接引用这些组件。同时,根据当前tab页对应的组件页面路径分别展示。此外,还需解决组件的生命周期问题。

对于页面整体结构,可以在pages.json中配置5个tabbar模板页面,并且采用easycom模式自动加载组件。具体的配置如下:

json

"easycom": { "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue", "^sww-(.*)": "@/components/sww-$1/sww-$1.vue" },

"tabBar": { "color": "#7A7E83", "selectedColor": "#3cc51f", "borderStyle": "black", "backgroundColor": "#ffffff", "list": [ { "pagePath": "pages/index/index" }, { "pagePath": "pages/module-page-one/index" }, { "pagePath": "pages/module-page-two/index" }, { "pagePath": "pages/module-page-three/index" }, { "pagePath": "pages/module-page-four/index" } ] }

在自定义tabbar中,可以使用uview组件,如:

在script部分,需要导入vuex,并监听tab的变化:

javascript

import {mapState} from 'vuex'

import {uniLinkTo} from "../../utils/uniPromise";

export default {

data() { return {} },

computed: { ...mapState(['vuex_tab_bar', 'vuex_tab_page']), current: { get(){ return this.$store.state.vuex_tab_bar.current }, set(value){ this.$store.commit('$uStore',{name: 'vuex_tab_bar.current', value}) } } },

methods: { onChange(index) { uniLinkTo(this.vuex_tab_page[index], 'tab') } }

}

在vuex中保存的tabbar数据格式如下:

json

vuex_tab_bar: {list: [],activeColor: '',inactiveColor: '',current: 0 },

vuex_tab_bar_default: {list: [ { iconPath: '/static/tab/home.png', selectedIconPath: '/static/tab/home_fill.png', text: '首页', url: '/package/index/index' }, { iconPath: '/static/tab/cat.png', selectedIconPath: '/static/tab/cat_fill.png', text: '分类', url: '/package/product/category/index' }, { iconPath: '/static/tab/community.png', selectedIconPath: '/static/tab/community_fill.png', text: '链圈', url: '/package/index/circle/index' }, { iconPath: '/static/tab/cart.png', selectedIconPath: '/static/tab/cart_fill.png', text: '购物车', url: '/package/user/cart/index' }, { iconPath: '/static/tab/user.png', selectedIconPath: '/static/tab/user_fill.png', text: '我的', url: '/package/user/index' }],activeColor: '#e93324',inactiveColor: '#666666',current: 0 }

在tab页面中使用组件的方式和获取tabbar数据的方法如下:

javascript

import {tabPage} from "../../mixins/tabPage";

export default {

mixins: [tabPage],

data() { return { tabIndex: 4 } }

}

通过上述步骤,已经完成了自定义底部tabbar的实现。

uniapp自定义底部tabbar

在特定需求下,若无法利用微信小程序原生的tabbar功能,需自行构建与原生tabbar功能相匹配的组件。经过查阅大量资料和实践,总结出三种自制tabbar的方法,并分析每种方法的独特之处。

首先,采用类navigator跳转方式实现。参考相关博文思路,创建了包含tabbar内容、逻辑、模板和样式的文件结构。在每个页面中引入相应内容,利用JS事件触发页面间跳转。此方法虽能实现功能,但存在明显闪烁现象。原因在于通过navigator和JS事件触发实现页面切换,导致视觉效果不佳。

随后,尝试将页面以组件形式实现。借鉴其他博客建议,使用component组件结构,避免了闪烁问题,提供更平滑的用户体验。根据小程序模板和组件的区别,了解到在主要展示页面内容时,使用template较为合适;当涉及到多个页面间的业务逻辑交互时,采用component组件更为合适。

最终决定采用component组件形式,将自定义tabbar组件化,将tabbar写为一个页面,而其他三个tabbar对应的页面分别写为三个component组件。这种结构类似于Vue中的组件化,便于管理和维护。

在component组件中,与普通页面类似,但JS文件和JSON文件有所不同。

自定义微信小程序Tabbar与navbar实现步骤详解

对于不同用户权限的界面需求,自定义Tabbar功能尤为重要,如学生与老师界面的区别。官方app.json配置简单优雅,但不满足根据权限变化的需求。

微信开放文档提供了自定义Tabbar的方法,主要步骤如下:

1. 在app.json中声明tabBar的custom属性为true,隐藏默认Tabbar,补充完整页面路径。

2. 创建根目录下的custom-tab-bar文件夹,包含index.js、index.wxml、index.json等文件,结构固定,无需引入。

3. 在app.json中使用usingComponents注册自定义组件,或在相应页面中添加usingComponents项。

4. 定义index.wxml,设计Tabbar界面。

5. 编写index.js,实现Tabbar功能逻辑,如切换页面、响应用户操作。

6. 在tabbar页面启动时调用初始化函数,根据用户角色加载不同Tabbarlist。

通过上述步骤,实现自定义Tabbar与navbar,满足不同用户权限需求,使界面更加灵活、个性化。

以上就是微信小程序tabbar的全部内容,1. 在app.json中声明tabBar的custom属性为true,隐藏默认Tabbar,补充完整页面路径。2. 创建根目录下的custom-tab-bar文件夹,包含index.js、index.wxml、index.json等文件,结构固定,无需引入。3. 在app.json中使用usingComponents注册自定义组件,或在相应页面中添加usingComponents项。内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。

猜你喜欢