当前位置:首页 > 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 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是 D…

uniapp分享到facebook

uniapp分享到facebook

使用uniapp分享到Facebook的方法 在uniapp中实现分享到Facebook功能,可以通过调用原生插件或使用第三方SDK。以下是具体实现方式: 安装Facebook SDK插件 在uni…

uniapp关闭侧滑

uniapp关闭侧滑

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

uniapp图文

uniapp图文

图文混排实现方式 在uniapp中实现图文混排通常采用<rich-text>组件或自定义样式布局。<rich-text>支持解析HTML字符串,适合动态内容渲染。 <te…

uniapp 绘图

uniapp 绘图

uniapp 绘图方法 使用 Canvas 组件 uniapp 支持通过 canvas 组件实现绘图功能。在模板中声明 canvas 并设置宽度、高度和 ID,通过 JavaScript 调用绘图 A…

uniapp 日志

uniapp 日志

uniapp 日志管理方法 uniapp本身没有内置日志系统,但可以通过以下方式实现日志记录功能: 使用console.log输出日志 开发阶段可以直接使用console.log()、console…