当前位置:   article > 正文

uniapp 自定义tabber导航栏组件_uni-app tabbar写成组件

uni-app tabbar写成组件

有时我们需要给导航栏加背景图片或给导航栏加自定义图片或文字,原生的导航栏就满足不了我们的需求了

自定义导航栏组件

  1. <template>
  2. <view class="zaiui-bar-title-box">
  3. <view class="cu-bar" :class="[bgColor]">
  4. <!-- 默认返回的图标 -->
  5. <view class="back" @tap="BackPage" v-if="isBack">
  6. <image src="/static/back.png" mode=""></image>
  7. </view>
  8. <!-- 当isBack为false时 自定义左边内容 -->
  9. <view class="left" @tap="leftTap" v-if="!isBack">
  10. <slot name="left"/>
  11. </view>
  12. <!-- 中间文本内容 -->
  13. <view class="content" @tap="contentTap">
  14. <slot name="content"/>
  15. </view>
  16. <!-- 右边内容 -->
  17. <view class="right" @tap="rightTap">
  18. <slot name="right"/>
  19. </view>
  20. </view>
  21. <!--占位的-->
  22. <view class="zaiui-seat-height" />
  23. </view>
  24. </template>
  25. <script>
  26. export default {
  27. name: 'bar-title',
  28. props: {
  29. bgColor: {
  30. type: String,
  31. default: ''
  32. },
  33. isBack: {
  34. type: Boolean,
  35. default: true
  36. },
  37. },
  38. methods: {
  39. BackPage() {
  40. uni.navigateBack();
  41. },
  42. leftTap() {
  43. this.$emit('leftTap');
  44. },
  45. contentTap() {
  46. this.$emit('contentTap');
  47. },
  48. rightTap() {
  49. this.$emit('rightTap');
  50. }
  51. }
  52. }
  53. </script>
  54. <style lang="scss" scoped>
  55. .zaiui-bar-title-box {
  56. .cu-bar {
  57. padding: 0 20rpx;
  58. color: #FFFFFF;
  59. box-sizing: border-box;
  60. background: url(../static/topbg.png) 0 0 no-repeat;
  61. background-size: cover;
  62. position: fixed;
  63. left: 0;
  64. top: 0;
  65. width: 100vw;
  66. display: flex;
  67. justify-content: space-between;
  68. align-items: center;
  69. padding-top: var(--status-bar-height);
  70. min-height: calc(var(--status-bar-height) + 101rpx);
  71. .back{
  72. image{
  73. width: 18rpx;
  74. height: 25rpx;
  75. }
  76. }
  77. .content {
  78. flex: 1;
  79. text-align: center;
  80. }
  81. }
  82. .zaiui-seat-height {
  83. width: 100%;
  84. height: calc(var(--status-bar-height) + 101rpx);
  85. }
  86. }
  87. </style>

我是全局注册了导航栏组件。在main.js中注册英文这个项目大部分都是用自定义组件,所有不想一个文件去单独引用

  1. import barTitle from '@/components/bar-title.vue';
  2. Vue.component('barTitle', barTitle);

使用导航栏

这样我们就实现了可以自定义的导航栏了

  1. <bar-title @rightTap="tourl('/pages/my/withdrawalList')">
  2. <block slot="content">提现</block>
  3. <block slot="right">提现记录</block>
  4. </bar-title>

记得在page.json中隐藏原生的导航栏哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/699869
推荐阅读
  

闽ICP备14008679号