Lewati ke konten

Rating

Input penilaian bintang, dibangun di atas primitif Rating milik Reka UI.

Penggunaan

v-model adalah number biasa antara 0 dan length (default 5):

vue
<script setup lang="ts">
const value = ref(3)
</script>

<template>
  <SRating v-model="value" aria-label="Rate your experience" />
</template>

Presisi setengah bintang

step mengatur seberapa halus nilai satu bintang dapat dibagi - salah satu dari 1 (default), 0.5, 0.25, atau 0.1. 0.5 membagi setiap bintang menjadi setengah kiri dan setengah kanan, masing-masing menjadi wilayah kliknya sendiri:

vue-html
<SRating v-model="value" :step="0.5" />

Clearable

Mengklik bintang yang sedang dipilih lagi mengatur ulang nilai ke 0:

4 out of 5 - click the current star again to clear

vue-html
<SRating v-model="value" clearable />

Ukuran

vue-html
<SRating :default-value="4" size="lg" />

Warna

vue-html
<SRating :default-value="4" color="success" />

Tampilan read-only

disabled memblokir interaksi sepenuhnya - dipasangkan dengan model-value/step pecahan, ini adalah komponen yang sama yang digunakan murn untuk menampilkan penilaian (skor ulasan rata-rata, misalnya), bukan hanya mengumpulkannya:

vue-html
<SRating :model-value="4.5" :step="0.5" disabled aria-label="4.5 out of 5" />

Vertikal

vue-html
<SRating v-model="value" orientation="vertical" />

Integrasi formulir

Bungkus dalam FormField untuk mendapatkan id/name/invalid dan aria-describedby terhubung secara otomatis - invalid fallback ke state FormField sendiri saat tidak diatur langsung pada rating, dan size juga sama.

Custom :ui

Untuk melihat dengan tepat apa yang akan Anda timpa - kelas default untuk setiap slot dan varian - berikut adalah file tema Rating sendiri:

Theme source "rating" not found

Props

PropTipeDefault
idstring-
modelValuenumber-
defaultValuenumber-
lengthnumber5
step1 | 0.5 | 0.25 | 0.11
clearablebooleanfalse
hoverablebooleantrue
disabledbooleanfalse
invalidbooleanfalse
orientation'horizontal' | 'vertical'horizontal
size'sm' | 'md' | 'lg'md
colorColorRoleprimary
namestring-
requiredbooleanfalse
uiPartial<Record<RatingSlot, string | object>>-

Events

EventPayloadDeskripsi
update:modelValuenumberTerpicu saat bintang (atau setengah bintang) diklik