微信小程序基于vant的自定义底部导航栏

这篇具有很好参考价值的文章主要介绍了微信小程序基于vant的自定义底部导航栏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于vant-weapp的底部导航栏,首先根据vant官网安装vant

https://vant-ui.github.io/vant-weapp/#/quickstart

由于vant的Tabbar 标签栏自带翻页效果,而且不够美观,且小程序最多只支持10个页面栈,点击多了会导致报错

vant 微信小程序 tabbar 标签栏,微信小程序,微信小程序,小程序

报错如下 

vant 微信小程序 tabbar 标签栏,微信小程序,微信小程序,小程序

将wx.navigateTo改为wx.redirectTo在反复多点很多次之后依然会报错,所以还得优化

源码文件链接:

https://download.csdn.net/download/qq_48702470/86838097

贴上代码:

wxml:

<van-tabbar active="{{ active }}" bind:change="onChange" placeholder>
  <van-tabbar-item wx:for="{{ navList }}" wx:key="index" icon="{{ item.icon }}">{{
    item.text
  }}</van-tabbar-item>
</van-tabbar>

 js:

Component({
    properties: {
        navList: {
            type: Array,
            default: () => {
                return [{
                        icon: 'home-o',
                        text: '页面1',
                        url: '/pages/home/home'
                    },
                    {
                        icon: 'search',
                        text: '页面2',
                        url: '/pages/mine/mine'
                    }
                ]
            }
        },
    },
    data: {
        active: 0
    },

    methods: {
        onChange(event) {
            // 当反复点击当前的页面,就不做切换操作了
            if (event.detail !== this.data.active) {
                this.setData({
                    active: event.detail
                });
                wx.switchTab({
                    url: this.data.navList[event.detail].url
                });
            }
            this.triggerEvent('onFooterNavChange', event)
        },

        init() {
            const page = getCurrentPages().pop();
            this.setData({
                active: this.data.navList.findIndex(item => item.url === `/${page.route}`)
            });
        }
    }
});

json:

{
	"component": true,
	"usingComponents": {
		"van-tabbar": "@vant/weapp/tabbar/index",
        "van-tabbar-item": "@vant/weapp/tabbar-item/index"
	}
}

使用方法:

1. 现将组件放入项目根目录的components文件夹下,自定义组件统一放在这里。(可以不用像微信官方案例一样的custom-tab-bar直接放在根目录下,强迫症表示很难受)

vant 微信小程序 tabbar 标签栏,微信小程序,微信小程序,小程序

2. 然后在app.json中全局设置tabBar的custom属性为true,和其他相关属性

微信官方案例:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html

"tabBar": {
		"custom": true,
		"color": "#000000",
		"selectedColor": "#000000",
		"backgroundColor": "#000000",
		"list": [
			{
                "pagePath": "pages/home/home"
			},
			{
				"pagePath": "pages/mine/mine"
			}
		]
	}

3. 开始使用

在需要使用到该组件的页面wxml中:

<!-- 底部导航栏 -->
<footer-nav-bar
    id="footer-nav-bar-id"
    navList="{{footerNavList}}"
    bind:onFooterNavChange="onFooterNavChange"
>
</footer-nav-bar>

在需要使用到该组件的页面js中:

data: {
    footerNavList: [{
            icon: 'home-o',
            text: '首页',
            url: '/pages/home/home'
        },
        {
            icon: 'friends-o',
            text: '我的',
            url: '/pages/mine/mine'
        }
    ],
},

/**
 * 生命周期函数--监听页面显示
 */
onShow() {
   // 通过id获取底部导航栏组件,调用其中的init方法获取当前页面
   let footerNavComp = this.selectComponent('#footer-nav-bar-id');
   // 调用组件中的init方法,重要,若没有这一步,在切换导航页面的时候,底部图标高亮会有问题
   footerNavComp.init()
},

onFooterNavChange(event) {
    // 点击底部导航栏切换后回调
    // console.log('点击底部导航栏', event.detail.detail);
}

最终实现效果:

vant 微信小程序 tabbar 标签栏,微信小程序,微信小程序,小程序

如果想要更高自由度或者特效的底部菜单,不受拘与vant的版本,请戳下方地址

微信小程序自定义底部导航栏_微信小程序底部_夏夜追凉丶的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-547133.html

到了这里,关于微信小程序基于vant的自定义底部导航栏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序第一节 —— 自定义顶部、底部导航栏以及获取胶囊体位置信息。

    dai ga hou啊!我是 😘😘😘 是江迪呀 。我们在进行微信小程序开发时,常常需要自定义一些东西,比如 自定义顶部导航 、 自定义底部导航 等等。那么知道这些自定义内容的具体位置、以及如何适配不同的机型就变得尤为重要。下面让我以在iPhone机型,来给大家介绍下 微信

    2024年02月02日
    浏览(58)
  • 微信小程序01-底部导航栏设置

    1 在app.json找到 pages,增加pages配置地址栏路径,保存后会自动生成相应文件夹; 2,增加  tabBar  参数,“selectedColor” 参数是设置选中后文字的颜色;\\\"list\\\" 中放置导航数据。      list 中 相关参数: pagePath ---- 指向地址                                   text   ---- 

    2024年02月12日
    浏览(46)
  • 微信小程序+vant组件 侧边导航栏切换显示

    设计页面时希望效果:左侧侧边导航栏,右侧内容。点击左侧导航栏的不同块,右侧显示不同内容。 采用了vant组件中侧边导航栏van-sidebar,van-sidebar子标签包括多个van-sidebar-item 实现方法: van-sidebar中设置 bind:change=\\\"onChange\\\": 随后在js文件中编写onChange(event),其中event.deta

    2024年02月13日
    浏览(48)
  • 微信小程序底部导航跳转tabBar页不触发onLoad

    .js加上onTabItemTap();方法

    2024年02月09日
    浏览(46)
  • 【微信小程序-原生开发】实用教程02-添加全局页面配置、页面、底部导航

    开始前,请先完成项目创建,详见 【微信小程序-原生开发】实用教程01-注册登录账号,获取 AppID、下载安装开发工具、创建项目、上传体验 因我们的项目是根据模板创建的,需先清理掉无效的页面代码,具体操作方式如下: 删除 pages 文件夹下的所有文件 用下方代码替换掉

    2023年04月10日
    浏览(45)
  • 微信小程序页面的跳转和导航的配置和vant组件

    结论: navigateTo ,  redirectTo  只能打开非 tabBar 页面。 switchTab  只能打开 tabBar 页面。 reLaunch  可以打开任意页面。 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。 调用页面路由带的参数可以在目标页面的 onLoad 中获取。 (1)当我们使用 redirectTo跳

    2024年02月09日
    浏览(55)
  • 优雅实现微信小程序动态tabBar,根据不同用户角色显示不同底部导航

    背景 在开发小程序过程中,有个需求是,小程序底部的tabBar需要根据不同用户角色显示不同底部导航。此时就需要用到自定义底部导航 custom-tab-bar。 上次发文是组合显示4个底部tabBar导航,很多小伙伴评论说组合超过5个怎么办。他们的需求总数超过5个了。 现在我在这里更新

    2024年02月14日
    浏览(38)
  • 微信小程序——自定义底部tabBar

    目录  实现步骤 1、配置信息 2、添加代码文件。  3、在该目录下编写代码即可。 二、在app.json里面添加tabBar配置 三.、在custom-tab-bar添加配置 1. 在custom-tab-bar创建如下目录 2.给index.wxml添加tabBar的结构代码   3. 给index.js 添加数据配置 和 事件方法 4. 给index.wxss 添加样式 四、

    2024年02月16日
    浏览(56)
  • 微信小程序底部tabbar自定义 实现凸起+透明底部效果

    先上图看效果: 步骤: 1、在文件根目录下创建一个文件夹:custom-tab-bar并分别创建 (js,json,wxml,wxss)类型文件 2、在pages.json中设置tabbar中的custom为true(true自定义,false默认系统) 3、index.js代码如下:

    2024年02月09日
    浏览(61)
  • 基于自定义组件实现微信小程序动态tabBar,根据不同用户角色显示不同底部tabBar,支持自由组合总数超过5个(更新版)

    背景 在开发小程序过程中,有个需求是,小程序底部的tabBar需要根据不同用户角色显示不同底部导航。此时就需要用到自定义底部导航 custom-tab-bar。 上次发文是组合显示4个底部tabBar导航,很多小伙伴评论说组合超过5个怎么办。他们的需求总数超过5个了。 现在我在这里更新

    2024年01月17日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包