当前位置:首页 > uni-app

uniapp制作标签页

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

使用uniapp制作标签页的方法

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

使用uniapp内置组件

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

<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>

自定义标签页样式

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

<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组件可以实现滑动切换标签页的效果:

uniapp制作标签页

<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中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中…

uniapp切片

uniapp切片

uniapp 切片实现方法 在 uniapp 中实现切片功能通常指的是对图片或数据进行分割处理。以下是几种常见的切片实现方式: 图片切片展示 通过 CSS 和 JavaScript 实现图片的网格化…

uniapp指南

uniapp指南

开发环境搭建 下载HBuilderX作为官方推荐的开发工具,支持Windows和Mac系统。安装后创建uni-app项目,选择模板(如默认模板、Hello Uni-app等)。确保Node.js版本在…

uniapp 壁纸

uniapp 壁纸

使用 Uniapp 开发壁纸应用的方法 实现壁纸展示与切换功能 在 Uniapp 中,可通过 swiper 组件实现壁纸轮播展示。结合 image 组件加载本地或网络壁纸资源,动态绑定 src 属性实…

uniapp 线程

uniapp 线程

uniapp 线程的概念 在 uniapp 中,线程的概念与原生应用开发有所不同。由于 uniapp 是基于 JavaScript 的运行环境,它并不直接支持多线程操作。JavaScript 本身是单…

uniapp探探

uniapp探探

uniapp实现探探滑动卡片效果 探探的滑动卡片效果主要包含卡片堆叠、左右滑动操作、动画反馈等功能。在uniapp中可以通过以下方式实现类似交互: 使用swiper组件实现基础滑动 uniapp的s…