当前位置:首页 > uni-app

uniapp制作标签页

2026-03-05 13:27:16uni-app

使用uniapp制作标签页的方法

在uniapp中制作标签页可以通过多种方式实现,以下是几种常见的方法:

使用uniapp内置组件

uniapp提供了uni-tab-baruni-tab-item组件,可以快速创建标签页:

uniapp制作标签页

<template>
  <view>
    <uni-tab-bar :current="current" @change="changeTab">
      <uni-tab-item title="首页" icon="home"></uni-tab-item>
      <uni-tab-item title="分类" icon="list"></uni-tab-item>
      <uni-tab-item title="购物车" icon="cart"></uni-tab-item>
      <uni-tab-item title="我的" icon="person"></uni-tab-item>
    </uni-tab-bar>

    <view v-if="current === 0">首页内容</view>
    <view v-if="current === 1">分类内容</view>
    <view v-if="current === 2">购物车内容</view>
    <view v-if="current === 3">我的内容</view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      current: 0
    }
  },
  methods: {
    changeTab(e) {
      this.current = e.index
    }
  }
}
</script>

自定义标签页样式

如果需要更灵活的样式控制,可以完全自定义标签页:

uniapp制作标签页

<template>
  <view class="tab-container">
    <view class="tab-bar">
      <view 
        v-for="(item, index) in tabs" 
        :key="index"
        :class="['tab-item', current === index ? 'active' : '']"
        @click="switchTab(index)"
      >
        {{item.title}}
      </view>
    </view>

    <view class="tab-content">
      <view v-if="current === 0">首页内容</view>
      <view v-if="current === 1">分类内容</view>
      <view v-if="current === 2">购物车内容</view>
      <view v-if="current === 3">我的内容</view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      current: 0,
      tabs: [
        {title: '首页'},
        {title: '分类'},
        {title: '购物车'},
        {title: '我的'}
      ]
    }
  },
  methods: {
    switchTab(index) {
      this.current = index
    }
  }
}
</script>

<style>
.tab-bar {
  display: flex;
  height: 80rpx;
  line-height: 80rpx;
  background-color: #f8f8f8;
}
.tab-item {
  flex: 1;
  text-align: center;
}
.active {
  color: #007aff;
  border-bottom: 4rpx solid #007aff;
}
.tab-content {
  padding: 20rpx;
}
</style>

使用第三方组件库

uniapp生态中有许多优秀的第三方组件库,如uView、ColorUI等,提供了更丰富的标签页组件:

<template>
  <view>
    <u-tabs 
      :list="tabs" 
      :current="current" 
      @change="changeTab"
    ></u-tabs>

    <view v-if="current === 0">首页内容</view>
    <view v-if="current === 1">分类内容</view>
    <view v-if="current === 2">购物车内容</view>
    <view v-if="current === 3">我的内容</view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      current: 0,
      tabs: [
        {name: '首页'},
        {name: '分类'},
        {name: '购物车'},
        {name: '我的'}
      ]
    }
  },
  methods: {
    changeTab(index) {
      this.current = index
    }
  }
}
</script>

实现滑动切换效果

结合swiper组件可以实现滑动切换标签页的效果:

<template>
  <view>
    <view class="tab-bar">
      <view 
        v-for="(item, index) in tabs" 
        :key="index"
        :class="['tab-item', current === index ? 'active' : '']"
        @click="switchTab(index)"
      >
        {{item.title}}
      </view>
    </view>

    <swiper 
      :current="current" 
      @change="swiperChange"
      :duration="300"
    >
      <swiper-item>
        <view>首页内容</view>
      </swiper-item>
      <swiper-item>
        <view>分类内容</view>
      </swiper-item>
      <swiper-item>
        <view>购物车内容</view>
      </swiper-item>
      <swiper-item>
        <view>我的内容</view>
      </swiper-item>
    </swiper>
  </view>
</template>

<script>
export default {
  data() {
    return {
      current: 0,
      tabs: [
        {title: '首页'},
        {title: '分类'},
        {title: '购物车'},
        {title: '我的'}
      ]
    }
  },
  methods: {
    switchTab(index) {
      this.current = index
    },
    swiperChange(e) {
      this.current = e.detail.current
    }
  }
}
</script>

以上方法可以根据项目需求选择使用,内置组件简单快捷,自定义方式灵活自由,第三方组件库功能丰富,swiper方式则能提供更好的用户体验。

标签: 标签uniapp
分享给朋友:

相关文章

uniapp开发

uniapp开发

uniapp开发简介 uniapp是一款基于Vue.js的跨平台开发框架,支持一次开发,多端部署。开发者可以通过编写一套代码,发布到iOS、Android、Web以及各种小程序平台(如微信、支付宝、百…

uniapp组件

uniapp组件

uniapp组件基础概念 uniapp的组件系统基于Vue.js,支持跨平台开发(H5、小程序、App等)。组件分为内置基础组件(如<view>、<button>)和自定义组件…

uniapp设置title

uniapp设置title

设置页面标题的方法 在UniApp中设置页面标题可以通过以下几种方式实现,适用于不同场景和需求。 通过pages.json配置 在pages.json文件中,可以为每个页面单独配置导航栏标题。找到对…

uniapp关闭侧滑

uniapp关闭侧滑

禁用全局侧滑返回功能 在pages.json中配置全局禁止侧滑返回: { "globalStyle": { "popGesture": "none" } } 禁用单个页面侧滑返回…

uniapp yuv

uniapp yuv

YUV 格式在 UniApp 中的应用 在 UniApp 中处理 YUV 格式数据通常涉及视频编解码、图像处理或摄像头数据采集。YUV 是一种颜色编码系统,常用于视频传输和图像处理,与 RGB 格式相…

uniapp 录像

uniapp 录像

uniapp 录像功能实现 在uniapp中实现录像功能可以通过调用uni-app的API或结合第三方插件完成。以下是常见的实现方法: 使用uni.chooseVideo方法 uni.choo…