当前位置:首页 > uni-app

uniapp制作标签页

2026-02-06 11:32:43uni-app

使用uniapp制作标签页的方法

方法一:使用uni-app官方组件uni-tabs

uni-app提供了uni-tabs组件用于快速创建标签页,支持横向和纵向布局,具有滑动切换效果。

uniapp制作标签页

<template>
  <view>
    <uni-tabs :current="current" @change="changeTab">
      <uni-tab title="标签1"></uni-tab>
      <uni-tab title="标签2"></uni-tab>
      <uni-tab title="标签3"></uni-tab>
    </uni-tabs>

    <view v-if="current === 0">内容1</view>
    <view v-if="current === 1">内容2</view>
    <view v-if="current === 2">内容3</view>
  </view>
</template>

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

方法二:自定义实现标签页

通过view和样式自定义标签页,灵活性更高。

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-show="current === 0">内容1</view>
      <view v-show="current === 1">内容2</view>
      <view v-show="current === 2">内容3</view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      current: 0,
      tabs: [
        {title: '标签1'},
        {title: '标签2'},
        {title: '标签3'}
      ]
    }
  },
  methods: {
    switchTab(index) {
      this.current = index
    }
  }
}
</script>

<style>
.tab-bar {
  display: flex;
  border-bottom: 1px solid #eee;
}
.tab-item {
  flex: 1;
  text-align: center;
  padding: 15px 0;
}
.active {
  color: #007AFF;
  border-bottom: 2px solid #007AFF;
}
.tab-content {
  padding: 15px;
}
</style>

方法三:使用第三方组件库

如uView UI等第三方组件库提供了更丰富的标签页组件。

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

  <view v-if="current === 0">内容1</view>
  <view v-if="current === 1">内容2</view>
  <view v-if="current === 2">内容3</view>
</template>

<script>
export default {
  data() {
    return {
      current: 0,
      list: [
        {name: '标签1'},
        {name: '标签2'},
        {name: '标签3'}
      ]
    }
  },
  methods: {
    change(index) {
      this.current = index;
    }
  }
}
</script>

注意事项

  • 对于性能要求高的场景,建议使用v-show而非v-if来切换内容
  • 需要滑动效果时,可以结合swiper组件实现
  • 不同平台可能有样式差异,需测试调整
  • 动态加载标签内容时注意数据更新机制

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

相关文章

uniapp 推送

uniapp 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是 D…

uniapp前端页面

uniapp前端页面

Uniapp 前端页面开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端部署(H5、小程序、App等)。以下是开发 Uniapp 前端页面的关键方法和注意事项。…

重构uniapp

重构uniapp

重构 Uniapp 项目的关键方法 代码结构优化 将页面、组件、静态资源按功能模块划分,避免全部堆放在根目录。建议采用以下结构: src/ ├── components/ // 通用组件…

uniapp探探

uniapp探探

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

uniapp滑动图标

uniapp滑动图标

uniapp滑动图标的实现方法 使用swiper组件实现横向滑动图标 在uniapp中可以通过swiper组件实现图标的横向滑动效果。以下是一个基础示例代码: <template>…

vue实现标签页效果

vue实现标签页效果

实现标签页效果的基本思路 Vue中实现标签页效果通常需要结合动态组件或条件渲染,通过切换不同标签展示对应内容。核心逻辑包括管理当前激活的标签、绑定点击事件以及内容切换。 基于v-show的条件渲染方…