Skip to content

Rate 评分 ​

uvx-rate 用于星级评分,支持整数、半星、最小值、只读、禁用、自定义图标和滑动选择。

平台兼容性 ​

AndroidiOS鸿蒙H5微信
3.9+4.11+4.61+4.0+4.41+

平台能力 ​

能力AndroidiOS鸿蒙H5微信
整数、半星、只读和禁用√√√√√
点击、滑动选择和双向绑定√√√√√
自定义颜色、图标、尺寸和间距√√√√√

使用须知

  1. value 不为数值 0 时优先于 model-value;推荐只使用 v-model。
  2. disabled 和 readonly 都阻止修改;disabled 还会将所有图标颜色切换为禁用色。
  3. touchable 只控制滑动选择,点击星星始终可用,除非禁用或只读。
  4. count 最小为 1,size 最小为 1,gutter 最小为 0,min-count 被限制在 0-count。
  5. 组件位于后显示的弹层中时,显示后调用 init() 重新读取左边界,保证滑动评分准确。

基础用法 ​

vue
<template>
   <uvx-rate v-model="value" @change="handleChange"></uvx-rate>
</template>

<script lang="uts" setup>
const value = ref<number>(0);

const handleChange = (nextValue: number): void => {
   value.value = nextValue;
};
</script>

星星数量和尺寸 ​

vue
<uvx-rate :model-value="3" :count="4" :size="30" :gutter="6"></uvx-rate>

半星评分 ​

vue
<uvx-rate
   :model-value="3"
   :allow-half="true"
   :touchable="true"
></uvx-rate>

禁用和只读 ​

vue
<template>
   <uvx-rate :model-value="3" :disabled="true"></uvx-rate>
   <uvx-rate :model-value="3" :readonly="true"></uvx-rate>
</template>

自定义图标和颜色 ​

vue
<uvx-rate
   :model-value="3"
   active-icon="heart-fill"
   inactive-icon="heart"
   active-color="#f56c6c"
   inactive-color="#c8c9cc"
></uvx-rate>

最小评分 ​

vue
<uvx-rate :model-value="1" :min-count="1"></uvx-rate>

API ​

Props ​

属性说明类型默认值平台
value兼容评分值,非零时优先于 model-valuenumber | string0全部
model-value双向绑定评分值number | string0全部
count评分项数量,最小为 1number | string5全部
disabled是否禁用操作并使用禁用色booleanfalse全部
readonly是否只读booleanfalse全部
size图标尺寸,最小为 1number | string18全部
inactive-color未选中颜色,为空时跟随图标主题string""全部
active-color选中颜色,为空时使用错误语义色string""全部
gutter图标间距,最小为 0number | string4全部
min-count用户可选择的最小评分number | string1全部
allow-half是否允许半星booleanfalse全部
active-icon选中图标名称stringstar-fill全部
inactive-icon未选中图标名称stringstar全部
touchable是否允许滑动选择booleanfalse全部
u-style根节点自定义样式,CSS 字符串string""全部
u-class追加到根节点的外部样式类string""全部

Events ​

事件说明参数平台
update:modelValue用户修改评分后更新绑定值value: number全部
input用户修改评分后触发value: number全部
change用户修改评分后触发value: number全部

Methods ​

方法说明参数平台
init()下一帧重新测量组件左边界-全部

参考 ​

uvx-ui · uni-app x 组件库