小程序实现动态tabbar

这篇具有很好参考价值的文章主要介绍了小程序实现动态tabbar。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求是小程序的地步tabbar 要在后台能设置 还要看能改动的尺度,如果不是在小程序里,那么底部tabbar 随便渲染 ,前端无非就是 请求来数据 循环渲染到页面上。类似于后台系统 根据权限请求左侧导航栏一样

但是这样的模式有一个前提是总数是定的 都有对应的名字和路径 , 但在小程序里虽然底部tabbar限定是 5 个 但是 每个都要动态生成  在app.json中 底部导航 list 又要和页面相对应 ,提供的api 不能修改 app.json    也不能用 custom-tab-bar 

最终决定 使用 vant-weapp van-tabbar 组件来实现   app.json 注册一下  使用到的 一些页面 用{{behaviors}}封装下  相互之间的跳转 使用 wx.redirectTo

  <van-tabbar active="{{ active }}" bind:change="onChange" active-color="#fff" inactive-color="#fff">

  <van-tabbar-item  wx:for="{{tabBarList}}" wx:key="index"  style="{{index === active ? 1 : touming}}" >

    <image

      slot="icon"

      src="{{ item.IconPath }}"

      mode="aspectFit"

      style="width: 26px; height: 26px;"

    />

    <image

      slot="icon-active"

      src="{{ item.IconPath }}"

      mode="aspectFit"

      style="width: 26px; height: 26px;"

    />

    {{item.text}}

  </van-tabbar-item>

</van-tabbar>

  // 点击tabbar 回调
  onChange(e){
    if(this.data.active === e.detail) return // 点击当前页面什么也不做
    let id = this.data.tabBarList[e.detail].id;  // 取到点击那一项的id
    wx.redirectTo({
      // 跳转对应路径 传参 id 
      url: this.data.tabBarList[e.detail].pagePath + '?id=' + id
    })
},

点击后 索引值判断点击的是那一项  来判断 跳转到什么页面 和传入的 初始请求数据的id

tabbar渲染的列表是 进入小程序时请求过来的  然后根据每一项的属性判断 它对应的是哪一个页面

// 进入页面前 请求 底部的导航栏 并且按照需求抽并封装数据
getTabbar(){
      wx.request({
          url: 'xxxxxxxx',
          method: 'POST',
        data:{
          storeId:wx.getStorageSync('storeData').id, // 传参门店id
          status:1 // 获取正常显示的
        },
        success: res =>{
          let yuan = res.data.data // 转存元数据
          let aaa = yuan.map(x =>{
            // map 出 tabar 的数据
            return {
              text:x.moduleName, // 模块名字
              IconPath:x.iconUrl, // 图标的 url
              id:x.moduleId, // 模块 id 根据id切换tabar
              moduleStorey:x.moduleStorey, // 模块的层级 最多 3 层
              isHomePage:x.isHomePage, // 是否是首页
              moduleStyle:x.moduleStyle, // 显示格式 0图文  1文字
              sort:x.sort, // 排序
            }
          })
          aaa.forEach(e => {
            // 首页有标识 isHomePage 直接对应 pages/index 固定对应的页面
            if(e.isHomePage === 1){
              e.pagePath="/pages/index/index"
              // 二级或者三级 文字展现形式的页面  pages/wenzi_tuwen_anli
            }else if((e.moduleStorey === 2 || e.moduleStorey === 3) && e.moduleStyle === 1){
              e.pagePath="/pages/wenzi_tuwen_anli/wenzi_tuwen_anli"
              // 二级图文 对应的页面 /pages/tuwen_tuwen_notab
            }else if(e.moduleStorey === 2  && e.moduleStyle === 0){
              e.pagePath="/pages/tuwen_tuwen_notab/tuwen_tuwen_notab"
              // 一级或者三级 图文 对应的页面 /pages/tuwen_anli
            }else if(e.moduleStorey === 1  || e.moduleStorey === 3){
              e.pagePath="/pages/tuwen_anli/tuwen_anli"
            }
          })
          aaa.sort((a,b) => a.sort - b.sort) // 进行排序
        }
        });
      },

  

 文章来源地址https://www.toymoban.com/news/detail-701793.html

到了这里,关于小程序实现动态tabbar的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小程序动态控制tabbar的数量,uniApp动态控制tabbar的数量

    需求分析 :         小程序登录进来有2种身份,每种身份看到的页面不一样,而且tabbar的数量也不一样,这个时候就需要用到微信小程序的自定义tabbar, 自定义tabbar和原生tabbar在用户体验上差不多,几乎看不出有什么区别,废话不多说直接上代码 创建一个文件夹 custom-ta

    2024年02月13日
    浏览(33)
  • 微信小程序设置 tabbar icon 大小

    微信小程序的 tabbar icon 大小可以通过以下方式进行设置: 将 tabbar icon 图片制作成合适的尺寸:你可以使用设计工具(如 Photoshop、Sketch 等)将图标调整为合适的大小。通常建议使用 48x48 或 60x60 像素的图标。 在 app.json 文件中设置 tabbar 图标大小:在 app.json 文件的 tabBar 字段

    2024年02月13日
    浏览(30)
  • 微信小程序 为tabBar设置角标

    添加文本角标:wx.setTabBarBadge(Object object) 示例: 移除文本角标:wx.removeTabBarBadge(Object object) 示例: 显示红点角标:wx.showTabBarRedDot(Object object) 示例: 隐藏红点角标:wx.hideTabBarRedDot(Object object) 示例: 微信API设置角标很简单方便,但目前官方暂不支持修改角标颜色,

    2024年02月11日
    浏览(73)
  • GPT问答记录:微信小程序动态tabBar开发配置(服务端+前端代码)

    答1: 好的,下面是一个具体的方案供你参考,包括数据库表设计、Java 后台代码和小程序前端代码。请注意,这个方案仅供参考,具体实现可能需要根据你的实际需求进行调整。 数据库表设计 首先,需要设计一个 tabBar 数据表来存储 tabBar 配置信息,该表包含以下字段: i

    2023年04月22日
    浏览(42)
  • 微信小程序-获取设备信息,状态栏/导航栏/内容/tabBar高度设置

    效果展示  代码展示

    2024年02月11日
    浏览(49)
  • 微信小程序内嵌h5页面,实现动态设置顶部标题的功能

    一、需求描述 使用HBuilder X作为开发工具,vue作为开发语言,开发微信小程序。微信小程序页面内嵌h5页面,即web-view/web-view标签。通过设置不同url连接地址,设置不同的标题。 二、失败做法 页面A嵌入h5页面,需要给A设置标题。最开始写法是在lonload页面内,使用如下语句实现

    2024年02月04日
    浏览(41)
  • 【微信小程序入门到精通】— 微信小程序实现多页面切换(tabBar)

    对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢? 为此我特意开设此专栏,在我学习的同时也将其分享给大家! 本篇文章将给大家带来如何添加页面切换效果,我们前面所讲解的都是停留在某一页面上面进行预览,接下来我们将

    2024年02月03日
    浏览(69)
  • 微信小程序自定义tabBar简易实现

    index.wxml index.json index.js index.css 如果是componet的页面就直接再show中自己定义它的selected代表当前的选中态

    2024年02月03日
    浏览(34)
  • 原生微信小程序使用 wxs;微信小程序使用 vant-weapp组件

    在这里插入图片描述 操作顺序 :文档地址 如果使用 typescript 需要操作步骤3,否则不需要操作 2.1 在根目录下 操作 2.2 安装版本 2.3 构建包 - 详情-勾选使用 npm 2.4 使用 vant 组件

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

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

    2024年02月09日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包