评论

微信小程序使用ui组件库的tabbar组件如何实现跳转

在百度也没找到合适的方法,所以写了这篇文,真的希望能帮助到大家。

之前一直都是用原生的tabbar但是自己使用的图标实在是太丑了,同时也想使用其他好看ui组件库做开发,我选用的是iview-weapp(直男审美),今天主要说的是tabbar组件,首先使用方法也很简单在github链接https://github.com/TalkingData/iview-weapp把这个ui组件库下载下来,再把dist文件引入自己的项目中(dist文件跟pages文件同级),好的这样就能使用iview-weapp组件库啦,接下来我们需要用到什么组件就在页面对应的.json文件里按需引入就可以了,下面我使用tabbar组件当个例子(建议打开这个链接https://weapp.iviewui.com/docs/guide/start看着文档操作)

然后我们在wxml文件里这样引用

当然仅仅这样肯定还是不行的,我们还需要在js文件里这样写

这个是默认值,默认选中的是第一个tabbar-item

这个是点击tabbar-item的时候获得选中的状态
好的这样我们项目里tabbar就能正常使用了但是问题来了,为啥文档没告诉我怎么跳转啊

这也太难受了,百度了好久也没找到答案(这也是我写这个文章的目的,希望能帮助到大家)然后我就去看了微信小程序的开发文档https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html,看到Component 构造器这个东西貌似可以帮助我解决这个问题(文档还是很强的,建议多看),下面是解决方法:
首先我们需要在pages目录下创建一个component目录

然后在component目录下创建三个用来跳转的子页面(名字自己看着取)

子页面对应的.json文件需要这样写

子页面对应的js文件需要这样写
var app = getApp();

Component({

/* 开启全局样式设置 */
options: {
addGlobalClass: true,
},

/* 组件的属性列表 */
properties: {
name: {
type: String,
value: ‘cost’
}
},

/* 组件的初始数据 */
data: {

},

/* 组件声明周期函数 */
lifetimes: {
attached: function () {

},
moved: function () {

},
detached: function () {

},

},

/* 组件的方法列表 */
methods: {

}

})
然后子页面对应的wxml与wxss页面就写需要的样式就行了。
接下来我们要在我们放tabbar组件的index.wxml文件里这样写

使用hidden来判断显示我们创建的子页面(组件)
当然我们也还要在index.json引入我们的三个子页面

这样我们的tabbar跳转就完成啦
成功案例:



这样的跳转页面也不会闪烁一下哦,如果你使用其他ui组件库用同样的方法也可以实现tabbar跳转呢,也可以自己写一个自定义tabbar(挺简单的),很少发文有问题请指出,写的不好请见谅。
对了有些小伙伴说就是加载首页数据的时候 另外两个页面的数据也提前渲染了,有些业务逻辑是点击其他页面的时候页面的数据会刷新,我就不放代码上来了。提供个思路:下面的菜单按钮是可以监听的,可以用监听来解决,文档里有(多看文档)。

最后一次编辑于  2020-09-18  
点赞 6
收藏
评论

10 个评论

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-10








    2019-12-10
    赞同 1
    回复 4
    • 范海平
      范海平
      2019-12-10
      哈哈 你这个点赞 有点秀
      2019-12-10
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-10回复范海平
      嘿~你也可以
      2019-12-10
      回复
    • Aerial.
      Aerial.
      2023-09-22
      <p style="animation:weuiLoading 1s ease-in-out infinite;animation-delay:16s;background-color:skyblue;color:#fff;padding:6px 10px;margin-bottom:5px;margin-left:250px;border-radius:10%;display:inline-block;">赞</p>
      2023-09-22
      回复
    • Aerial.
      Aerial.
      2023-09-22
      2023-09-22
      回复
  • Aerial.
    Aerial.
    2023-09-22
    <p style="animation:weuiLoading 1s ease-in-out infinite;animation-delay:16s;background-color:skyblue;color:#fff;padding:6px 10px;margin-bottom:5px;margin-left:250px;border-radius:10%;display:inline-block;"></p>
    


    2023-09-22
    赞同
    回复
  • Aerial.
    Aerial.
    2023-09-22
    <p style="animation:weuiLoading 1s ease-in-out infinite;animation-delay:16s;background-color:skyblue;color:#fff;padding:6px 10px;margin-bottom:5px;margin-left:250px;border-radius:10%;display:inline-block;">赞</p>
    
    2023-09-22
    赞同
    回复
  • 💋-Sparks
    💋-Sparks
    2021-11-25

    我怎么没出来呢 ?哭哭哭哭哭

    2021-11-25
    赞同
    回复
  • 星晨
    星晨
    2021-04-20

    额...下午试了下,这是把原来的页面当成组件来用了啊,和提供的tabber没有任何关系,可以说是另辟蹊径,而不是找到iview跳转的解决办法

    2021-04-20
    赞同
    回复 1
    • 星晨
      星晨
      2021-04-20
      仔细来说的话,这个跳转了其实还是在原来的页面上,只是换了页面内容,于是顶上navigationBarTitleText这些,无法变化,原生的会变来着
      2021-04-20
      回复
  • 星晨
    星晨
    2021-04-20

    哈哈哈我也是,原生的tabber太丑,想用iview的,高高兴兴添加上,结果居然没有跳转,谢谢了,赞

    2021-04-20
    赞同
    回复
  • 丨
    2021-01-29

    非常赞。初学,很多不懂,求教。有个问题请教一下:

    1、有点不太明白pages目录下面的index页面和component组件内的三个子页面的关系是什么?

    2、component组件内的三个子页面应该是不会在app.json中的“pages”属性中配置的吧?

    3、一般底部的导航栏是作为全局tabbar,所以不会在pages页面下的某一个页面文件xxx.wxml中引用第三方的tabbar组件的,是吧?

    2021-01-29
    赞同
    回复
  • 小房子~
    小房子~
    2020-04-26

    你有没有其他的技术博客地址,想关注下的文

    2020-04-26
    赞同
    回复 1
    • 小房子~
      小房子~
      2020-04-26
      按照你的方法,用vant-weapp也实现了该功能,感谢分享
      2020-04-26
      回复
  • 小苏
    小苏
    2020-02-23

    按您说的做了,可是跳转到其他页面的时候首页的数据还是渲染了

    2020-02-23
    赞同
    回复 1
    • 范海平
      范海平
      2020-02-24
      啥 你想做成什么效果呢
      2020-02-24
      回复
  • We
    We
    2020-01-02

    为什么不显示导航图片

    2020-01-02
    赞同
    回复 3
    • We
      We
      2020-01-02
      图标加到哪个文件夹中??
      2020-01-02
      回复
    • 范海平
      范海平
      2020-01-02回复We
      你可以先去看看iview weapp组件库的tabbar组件,看完再来问
      2020-01-02
      回复
    • 范海平
      范海平
      2020-01-09回复We
      图标是不用加到文件夹里的,是ui组件库里的东西,直接引用就行
      2020-01-09
      回复
登录 后发表内容