vant 小程序自定义tabbar

// 原来还觉得vant不行,不过这个tabbar还挺香

1、引入 app.json

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

2、更改tabbar配置 app.json

复制代码
"tabBar": {
    "custom": true,
    "list": [{
        "pagePath": "pages/index/index"
      },
      {
        "pagePath": "pages/dispatch/index/index"
      }
    ]
  }
复制代码

3、写tabbar插件 tabbar-user

js

复制代码
// components/tabbar-user/tabbar-user.js
Component({
  properties: {
    active:Number
  },

  methods: {
    onChange(event) {
      // event.detail 的值为当前选中项的索引
      let url = ''
      switch (event.detail) {
        case 0:
          url = '/pages/index/index'
          break;
        case 1:
          url = '/pages/dispatch/index/index'
          break;
        default:
          break;
      }
      wx.switchTab({
        url: url,
      })
    },
  }
})
复制代码

wxml

复制代码
<van-tabbar active="{{ active }}" bind:change="onChange" active-color="#0080ff" inactive-color="#999999">
  <van-tabbar-item>
    <image slot="icon" src="/assets/images/icon/sy.png" mode="aspectFit" style="width: 30px; height: 18px;" />
    <image slot="icon-active" src="/assets/images/icon/sy.png" mode="aspectFit" style="width: 30px; height: 18px;" />首页
  </van-tabbar-item>
  <van-tabbar-item>
    <image slot="icon" src="/assets/images/icon/pg.png" mode="aspectFit" style="width: 30px; height: 18px;" />
    <image slot="icon-active" src="/assets/images/icon/pg.png" mode="aspectFit" style="width: 30px; height: 18px;" />派工
  </van-tabbar-item>
</van-tabbar>
复制代码

4、app.json 引入组件

  "usingComponents": {
    "van-tabbar": "@vant/weapp/tabbar/index",
    "van-tabbar-item": "@vant/weapp/tabbar-item/index",
    "tabbar-user": "components/tabbar-user/tabbar-user"
  },

5、页面使用 /pages/index/index

<tabbar-user active="0"></tabbar-user>

 6、小程序编译的时候应该会提示warning信息,可以再根目录下新建一个空组件,或者不用管也没啥影响

空组件名为 custom-tab-bar,注意要把wxml中的信息全部删掉或注释掉,否则会有影响

posted @   jqynr  阅读(1002)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示