小程序自定义tabbar

1.介绍:微信自带的tabbar已经无法满足我们的需求了,往往我们需要自定义tabbar,请看代码

<!-- 首先在page下面创建home首页页面,只用来存放我们的tabbar -->

<van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item name="index" icon="home-o">首页</van-tabbar-item>
  <van-tabbar-item name="search" icon="search">搜索页</van-tabbar-item>
  <van-tabbar-item name="shapping" icon="friends-o">商品页面</van-tabbar-item>
  <van-tabbar-item name="new" icon="setting-o">最新页面</van-tabbar-item>
</van-tabbar>


<!-- 放置tabbar的对应的组件,点击tabbar让对应的组件显示 -->

<view hidden="{{ active === 'index' ? false : true }}">
  <first-page></first-page>
</view>
<view hidden="{{ active === 'search' ? false : true }}">
  <search></search>
</view>
<view hidden="{{ active === 'shapping' ? false : true }}">
  <shapping></shapping>
</view>
<view hidden="{{ active === 'new' ? false : true }}">
  <new></new>
</view>
// 在home下的index.json中注册这些组件


{
  "usingComponents": {
    "van-tabbar": "@vant/weapp/tabbar/index",
    "van-tabbar-item": "@vant/weapp/tabbar-item/index",
    "first-page": "/components/index/index",
    "search": "/components/search/index",
    "shapping": "/components/shapping/index",
    "new": "/components/new/index",
    "dong": "/components/dong/index"
  }
}


// home下的index.js

Page({

    data: {
        active: 'index',
    },

    // 点击之后重新设置路由
    onChange (event) {
        this.setData({
          active: event.detail
        })
    },

})



/*

还有一种方法就是在每个路由页面放置一个tabbar组件,控制管理交给全局
app.js去处理,但是这样的缺点就是在跳转路由的时候,tabbar会有短暂的闪烁,所有上面的写法是最美的解决方法了 

*/