开始

image.png

我的页面有类似的,可以直接拿过来用。
image.png

外层是圆角,用view包裹
image.png

image.png

引入home页面,数据的组件
image.png
组件内用的flex:1所以会均等的分配
image.png

image.png

  1. import homeData from '@/components/home/home-data.vue';
  2. homeData

循环的数据
image.png

  1. spacedata: [{
  2. name: "获赞",
  3. num: '10k'
  4. },
  5. {
  6. name: "‘关注",
  7. num: 0
  8. },
  9. {
  10. name: "粉丝",
  11. num: 0
  12. }
  13. ]

image.png

image.png
现在只需要网上移动一点盖住背景图,然后加一个圆角。
image.png
向上移15个像素
image.png
image.png
记得这里一定要加一个背景色白色
image.png

  1. .user-space-data{
  2. background: #FFFFFF;
  3. position: relative;
  4. z-index: 10;
  5. border-top-left-radius: 20upx;
  6. border-top-right-radius: 20upx;
  7. margin-top: -15upx;
  8. }

分割线。
image.png

tab

话题详情页写过类似的
image.png
复制其他页的代码。
image.png
引入组件。
image.png
复制tabbar的数据
image.png

image.png
复制点击的事件
image.png

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

image.png

  1. tabBars: [{
  2. name: "主页",
  3. id: "zhuye"
  4. },
  5. {
  6. name: "糗事",
  7. id: "qiushi"
  8. },{
  9. name: "动态",
  10. id: "dongtai"
  11. },
  12. ],

一共3个tab那么就是 33.33%的宽度。
image.png

image.png

image.png

本节代码

  1. <template>
  2. <view>
  3. <!-- 背景图 + 用户基本信息 -->
  4. <user-space-head :userinfo="userinfo"></user-space-head>
  5. <!-- 统计 -->
  6. <view class="user-space-data">
  7. <home-data :homedata="spacedata"></home-data>
  8. </view>
  9. <view class="height:20upx;background:F4F4F4;"></view>
  10. <!-- tabbar切换 -->
  11. <swiper-tab-head
  12. :tabBars="tabBars"
  13. :tabIndex="tabIndex"
  14. @tabtap="tabtap"
  15. scrollStyle="border-bottom:0;"
  16. scrollItemStyle="width:33%;">
  17. </swiper-tab-head>
  18. </view>
  19. </template>
  20. <script>
  21. import userSpaceHead from '@/components/user-space/user-space-head.vue';
  22. import swiperTabHead from '@/components/index/swiper-tab-head.vue';
  23. import homeData from '@/components/home/home-data.vue';
  24. export default {
  25. components:{
  26. userSpaceHead,
  27. homeData,
  28. swiperTabHead
  29. },
  30. data() {
  31. return {
  32. tabIndex: 0,
  33. tabBars: [{
  34. name: "主页",
  35. id: "zhuye"
  36. },
  37. {
  38. name: "糗事",
  39. id: "qiushi"
  40. },{
  41. name: "动态",
  42. id: "dongtai"
  43. },
  44. ],
  45. userinfo:{
  46. bgimg:1,
  47. userpic:'../../static/demo/userpic/11.jpg',
  48. username:'昵称',
  49. sex:0,
  50. age:20,
  51. isguanzhu:false
  52. },
  53. spacedata: [{
  54. name: "获赞",
  55. num: '10k'
  56. },
  57. {
  58. name: "关注",
  59. num: 0
  60. },
  61. {
  62. name: "粉丝",
  63. num: 0
  64. }
  65. ]
  66. }
  67. },
  68. methods: {
  69. // tabbar点击事件
  70. tabtap(index) {
  71. // console.log(index);
  72. this.tabIndex = index;
  73. }
  74. }
  75. }
  76. </script>
  77. <style>
  78. .user-spaace-margin{
  79. margin: 15upx 0;
  80. }
  81. .user-space-data{
  82. background: #FFFFFF;
  83. position: relative;
  84. z-index: 10;
  85. border-top-left-radius: 20upx;
  86. border-top-right-radius: 20upx;
  87. margin-top: -15upx;
  88. }
  89. </style>

结束