当前位置:首页 > VUE

vue badge 实现方法

2026-01-18 08:36:02VUE

使用组件库实现 Badge

Vue 生态中主流组件库(如 Element UI、Ant Design Vue、Vuetify 等)均提供现成的 Badge 组件。

以 Element UI 为例:

<el-badge :value="12" class="item">
  <el-button>评论</el-button>
</el-badge>

Ant Design Vue 示例:

vue badge 实现方法

<a-badge count=5>
  <a-avatar shape="square"/>
</a-badge>

自定义 Badge 组件

通过 CSS 绝对定位实现基础样式:

<template>
  <div class="badge-container">
    <slot></slot>
    <span class="badge" v-if="count">{{ count }}</span>
  </div>
</template>

<script>
export default {
  props: ['count']
}
</script>

<style>
.badge-container {
  position: relative;
  display: inline-block;
}

.badge {
  position: absolute;
  top: -8px;
  right: -8px;
  background: red;
  color: white;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  font-size: 12px;
  text-align: center;
  line-height: 16px;
}
</style>

动态 Badge 样式

根据数值变化调整样式:

vue badge 实现方法

computed: {
  badgeClass() {
    return {
      'badge': true,
      'badge-danger': this.count > 10,
      'badge-warning': this.count <= 10
    }
  }
}

动画效果实现

使用 Vue 过渡动画:

<transition name="bounce">
  <span class="badge" v-if="show">{{ count }}</span>
</transition>

<style>
.bounce-enter-active {
  animation: bounce-in 0.5s;
}
@keyframes bounce-in {
  0% { transform: scale(0) }
  50% { transform: scale(1.5) }
  100% { transform: scale(1) }
}
</style>

服务端数据绑定

结合 Vuex 或 API 数据:

data() {
  return {
    notificationCount: 0
  }
},
mounted() {
  fetch('/api/notifications/count')
    .then(res => res.json())
    .then(data => {
      this.notificationCount = data.count
    })
}

标签: 方法vue
分享给朋友:

相关文章

vue实现选区创建

vue实现选区创建

Vue 实现选区创建的方法 在 Vue 中实现选区创建通常涉及 DOM 操作和事件处理。以下是几种常见的方法: 使用原生 DOM API 通过 window.getSelection() 和 Ran…

vue如何实现冒泡

vue如何实现冒泡

Vue 实现冒泡排序 在 Vue 中实现冒泡排序,可以通过数据绑定和响应式特性动态展示排序过程。以下是一个完整的实现示例,包含代码和详细说明。 数据准备 在 Vue 的 data 中定义一个数组作为…

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <tem…

vue实现弹窗可切换

vue实现弹窗可切换

实现弹窗可切换的 Vue 方案 动态组件切换 通过 Vue 的 <component :is="currentComponent"> 动态加载不同弹窗组件,结合 v-if 控制显示状态。…

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name:…