1. 导航栏的作用
在我们使用微信小程序时,底部的导航栏扮演了非常重要的角色。它可以帮助用户快速切换不同的页面,提升用户的使用体验。因此,在小程序的开发中,我们需要重视底部导航栏的开发。
2. 底部导航栏的实现
小程序提供了自定义底部导航栏的 API,我们只需要在 app.json 文件中配置好相应的页面路径和图标即可。如下所示:
{
"pages": [
"pages/index/index",
"pages/logs/logs",
"pages/user/user"
],
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "images/icon_home.png",
"selectedIconPath": "images/icon_home_selected.png"
}, {
"pagePath": "pages/logs/logs",
"text": "日志",
"iconPath": "images/icon_logs.png",
"selectedIconPath": "images/icon_logs_selected.png"
}, {
"pagePath": "pages/user/user",
"text": "我的",
"iconPath": "images/icon_user.png",
"selectedIconPath": "images/icon_user_selected.png"
}]
}
}
2.1 tabBar 配置项说明
在 tabBar 中,我们可以配置一个 list 数组,每个数组项都是一个对象,表示一项导航。其中,pagePath 表示页面路径,text 表示导航文字,iconPath 表示导航未选中的图标路径,selectedIconPath 表示导航选中后的图标路径。
2.2 全局设置选中态
我们可以在 app.js 中监听页面路由切换事件,并在切换完成后修改 TabBar 的选中态。如下所示:
App({
globalData: {
currentTab: 0
},
onLaunch: function () {},
onShow: function () {},
onHide: function () {},
onPageNotFound: function () {},
// 监听页面路由切换事件
onPageLoad: function (res) {
var url = res.path
var tabBar = this.globalData.tabBar
for (var i = 0; i < tabBar.list.length; i++) {
tabBar.list[i].selected = false
if (tabBar.list[i].pagePath === url) {
tabBar.currentTab = i
tabBar.list[i].selected = true
}
}
this.globalData.tabBar = tabBar
}
})
3. 底部导航栏的优化
3.1 小程序返回顶部
在小程序的页面中,经常会遇到需要返回顶部的情况。我们可以在 tabBar 中添加一个点击事件,使用户可以在页面任意位置快速返回顶部。如下所示:
onTapTop:function(){
wx.pageScrollTo({
scrollTop: 0
})
}
3.2 底部导航栏数量限制
小程序底部导航栏的数量有限制,最多只能添加 5 个。为了更好的用户体验,我们可以将少数几个页面放在一个页面内以达到节约导航栏位置的效果。
总结:
底部导航栏是小程序中非常重要的一部分,对于提高用户的使用体验,有着非常重要的作用。通过本文的介绍,相信大家已经了解了小程序底部导航栏的开发方法以及一些常见优化方式。