Statistic — компонент библиотеки Element Plus, предназначенный для отображения числовых показателей, статистических значений и метрик. Он используется для представления данных в виде аккуратно оформленного числового блока с подписью, дополнительными элементами оформления и возможностью форматирования.
Компонент часто применяется в дашбордах, административных панелях, аналитических интерфейсах и других системах, где необходимо визуально выделить ключевые показатели:
Основная задача компонента — наглядно представить число и его описание, сохраняя визуальную иерархию интерфейса.
Минимальная конфигурация компонента состоит из двух параметров:
title — подпись показателяvalue — числовое значение<template>
<el-statistic title="Активные пользователи" :value="1024" />
</template>
Результат отображает блок:
Активные пользователи
1024
Значение автоматически стилизуется крупным шрифтом, чтобы выделяться на фоне интерфейса.
Компонент работает с реактивными данными Vue.
<template>
<el-statistic title="Заказы" :value="orders" />
</template>
<script setup>
import { ref } from 'vue'
const orders = ref(345)
</script>
При изменении значения orders компонент автоматически
обновит отображение.
Для улучшения читаемости больших чисел используется свойство precision, которое определяет количество знаков после запятой.
<template>
<el-statistic title="Конверсия" :value="12.3456" :precision="2" />
</template>
Результат:
12.35
Это особенно полезно для:
Свойство prefix добавляет текст или иконку перед значением.
Пример с валютой:
<template>
<el-statistic title="Доход" :value="56789">
<template #prefix>$</template>
</el-statistic>
</template>
Результат:
$56789
Частые сценарии использования:
Свойство suffix добавляет элементы после числа.
<template>
<el-statistic title="Использование CPU" :value="73">
<template #suffix>%</template>
</el-statistic>
</template>
Отображение:
73%
Суффикс часто используется для:
Для улучшения читаемости больших чисел применяется свойство group-separator.
<template>
<el-statistic
title="Просмотры"
:value="1234567"
group-separator=","
/>
</template>
Отображение:
1,234,567
В русской локализации часто используется пробел:
group-separator=" "
Свойство decimal-separator позволяет изменить символ разделения дробной части.
<template>
<el-statistic
title="Цена"
:value="1234.56"
decimal-separator=","
group-separator=" "
/>
</template>
Результат:
1 234,56
Это особенно важно при локализации интерфейсов.
Заголовок можно полностью кастомизировать с помощью слота.
<template>
<el-statistic :value="150">
<template #title>
Продажи за сегодня
</template>
</el-statistic>
</template>
Это позволяет:
Компонент поддерживает форматирование временных значений.
Пример отображения даты:
<template>
<el-statistic
title="Дата запуска"
:value="timestamp"
format="YYYY-MM-DD"
/>
</template>
<script setup>
const timestamp = Date.now()
</script>
Используется для:
Statistic может отображать обратный отсчет времени.
<template>
<el-statistic
title="Окончание акции"
:value="deadline"
format="HH:mm:ss"
/>
</template>
<script setup>
const deadline = Date.now() + 1000 * 60 * 60
</script>
Компонент автоматически обновляет значение времени.
Подобный функционал часто применяется для:
Statistic часто используется совместно с Grid системой Element Plus.
<template>
<el-row :gutter="20">
<el-col :span="6">
<el-statistic title="Пользователи" :value="1200" />
</el-col>
<el-col :span="6">
<el-statistic title="Продажи" :value="530" />
</el-col>
<el-col :span="6">
<el-statistic title="Доход" :value="78400">
<template #prefix>$</template>
</el-statistic>
</el-col>
<el-col :span="6">
<el-statistic title="Конверсия" :value="6.8">
<template #suffix>%</template>
</el-statistic>
</el-col>
</el-row>
</template>
В результате формируется панель статистики, используемая в дашбордах.
Компонент можно кастомизировать через CSS.
Пример изменения цвета значения:
.el-statistic__content-value {
color: #409eff;
font-weight: 600;
}
Изменение заголовка:
.el-statistic__head {
color: #909399;
font-size: 14px;
}
Также можно изменить:
Часто статистика сопровождается иконками.
<template>
<el-statistic :value="2345">
<template #title>
<el-icon><User /></el-icon>
Пользователи
</template>
</el-statistic>
</template>
Такой подход делает интерфейс более наглядным.
Компонент может обновляться в реальном времени.
<template>
<el-statistic title="Онлайн пользователи" :value="online" />
</template>
<script setup>
import { ref } from 'vue'
const onl ine = ref(120)
setInterval(() => {
online.value += Math.floor(Math.random() * 5)
}, 3000)
</script>
Подобный сценарий используется в:
| Свойство | Описание |
|---|---|
| title | Заголовок статистического блока |
| value | Отображаемое значение |
| precision | Количество знаков после запятой |
| prefix | Слот для префикса |
| suffix | Слот для суффикса |
| group-separator | Разделитель тысяч |
| decimal-separator | Разделитель дробной части |
| format | Формат отображения даты/времени |
| value-style | Стили для значения |
| Слот | Назначение |
|---|---|
| title | Кастомизация заголовка |
| prefix | Элемент перед числом |
| suffix | Элемент после числа |
<template>
<el-row :gutter="20">
<el-col :span="8">
<el-statistic title="Новые пользователи" :value="1234" />
</el-col>
<el-col :span="8">
<el-statistic title="Доход" :value="56320">
<template #prefix>$</template>
</el-statistic>
</el-col>
<el-col :span="8">
<el-statistic title="Конверсия" :value="5.6">
<template #suffix>%</template>
</el-statistic>
</el-col>
</el-row>
</template>
Такой блок статистики широко используется в:
Компонент Statistic обеспечивает удобное представление числовых данных, легко интегрируется с реактивной системой Vue и позволяет гибко настраивать отображение статистических показателей в пользовательских интерфейсах.