element ui el-rate 组件百分制评分及悬停显示百分比详解
本文介绍如何改进 Element UI 的 el-rate 组件,使其支持百分制评分,并在鼠标悬停时显示精确的百分比数值。
el-rate 组件默认是五星五分制,show-text 和 show-score 属性无法直接实现百分制评分。 要实现百分制(每半颗星代表 10 分),我们需要结合 allow-half 属性和事件监听。
简单方案:直接转换
开启 allow-half 属性允许半星评分。 获取评分值后,乘以 20 即得到百分制分数。 这种方法简单高效,但无法实现鼠标悬停显示百分比。
高级方案:事件监听及动态显示
由于 el-rate 不支持自定义 slot 修改评分显示模板,我们需要监听 @mousemove 事件(需使用 .native 修饰符)来获取实时评分值,并将其乘以 20 显示为百分比。 同时,需要开启 show-score 属性以便获取数值。
此方案需要在代码中添加事件监听器,并根据鼠标位置计算和更新显示的百分比。 为了优化性能,建议添加防抖或节流机制。
重要提示:避免直接修改源码
直接修改 el-rate 组件源码并不推荐。 通过事件监听和数据处理,我们可以达到相同效果,并保持代码的可维护性和与 Element UI 更新版本的兼容性。 虽然 el-rate 源码不复杂,但直接修改会增加维护难度,并可能导致版本冲突。