开始

实现tab切换,tab旁边还有数字。
image.png
这个结构和首页的类似。
image.png
话题页也有用到
image.png
详情页做了一定的优化
image.png

引入组件
image.png

  1. import swiperTabHead from '@/components/index/swiper-tab-head.vue';

image.png

  1. <!-- tabbar切换 -->
  2. <swiper-tab-head :tabBars="tabBars" :tabIndex="tabIndex" @tabtap="tabtap" scrollStyle="border-bottom:0;"
  3. scrollItemStyle="width:50%;">
  4. </swiper-tab-head>

粘贴过来。我们需要tabBars和tabIndex这两个变量。
image.png
复制过来。
image.png

  1. tabIndex: 0,
  2. tabBars: [{
  3. name: "默认",
  4. id: "moren"
  5. },
  6. {
  7. name: "最新",
  8. id: "zuixin"
  9. },
  10. ],

监听事件
image.png

  1. // tabbar点击事件
  2. tabtap(index) {
  3. this.tabIndex = index;
  4. }

image.png
加一个属性 num
image.png

  1. tabBars: [{
  2. name: "互关",
  3. id: "huguan",
  4. num:10
  5. },
  6. {
  7. name: "关注",
  8. id: "guanzhu",
  9. num:20
  10. },
  11. {
  12. name: "粉丝",
  13. id: "fensi",
  14. num:30
  15. },
  16. ]

因为我们当前是3个tab,各自占33%
image.png

  1. <!-- tabbar切换 -->
  2. <swiper-tab-head
  3. :tabBars="tabBars"
  4. :tabIndex="tabIndex"
  5. @tabtap="tabtap"
  6. scrollStyle="border-bottom:0;"
  7. scrollItemStyle="width:33%;">
  8. </swiper-tab-head>

image.png

tab后面的数字

在组件内修改
image.png

  1. {{tab.num}}

增加判断。三元运算符来判断。
image.png

  1. {{tab.num?tab.num:''}}

image.png
看其他页面是否受影响
image.png
动态页
image.png

本节代码

  1. <template>
  2. <view>
  3. <!-- tabbar切换 -->
  4. <swiper-tab-head
  5. :tabBars="tabBars"
  6. :tabIndex="tabIndex"
  7. @tabtap="tabtap"
  8. scrollStyle="border-bottom:0;"
  9. scrollItemStyle="width:33%;">
  10. </swiper-tab-head>
  11. </view>
  12. </template>
  13. <script>
  14. import swiperTabHead from '@/components/index/swiper-tab-head.vue';
  15. export default {
  16. components:{
  17. swiperTabHead
  18. },
  19. data() {
  20. return {
  21. tabIndex: 0,
  22. tabBars: [{
  23. name: "互关",
  24. id: "huguan",
  25. num:10
  26. },
  27. {
  28. name: "关注",
  29. id: "guanzhu",
  30. num:20
  31. },
  32. {
  33. name: "粉丝",
  34. id: "fensi",
  35. num:30
  36. },
  37. ]
  38. }
  39. },
  40. onNavigationBarButtonTap(e) {
  41. if(e.index==0){
  42. uni.navigateBack({
  43. delta:1
  44. })
  45. }
  46. },
  47. methods: {
  48. // tabbar点击事件
  49. tabtap(index) {
  50. this.tabIndex = index;
  51. }
  52. }
  53. }
  54. </script>
  55. <style>
  56. </style>

结束