当前位置: 首页
前端开发
Vue组件通信如何通过 Emit 回传评分星星组件当前选中的星级

Vue组件通信如何通过 Emit 回传评分星星组件当前选中的星级

热心网友 时间:2026-08-10
转载

里的评分组件,常见做法就是用把用户点选的星级回传给父组件:子组件先通过渲染出颗星,点击某一颗时触发事件,并把作为评分值传出去;父组件再通过监听接收这个值,同时也可以支持的双向绑定写法;如果是,对应。

Vue 里的评分组件,常见做法就是用 $emit 把用户点选的星级回传给父组件:子组件先通过 v-for 渲染出 5 颗星,点击某一颗时触发 rate 事件,并把 i+1 作为评分值传出去;父组件再通过监听 @rate 接收这个值,同时也可以支持 v-model 的双向绑定写法;如果是 Vue 3,对应的实现方式则是 modelValue/update:modelValue

Vue 组件通信怎么实现评分星星组件通过 Emit 回传当前选中的星级

在 Vue 中,评分星星组件(StarRating)通常需要将用户点击的星级通过 $emit 通知父组件。核心思路是:子组件内部用 `v-for` 渲染星星,绑定点击事件,触发自定义事件并传参;父组件监听该事件,接收当前选中的星级值。

具体来说,子组件:StarRating.vue —— 渲染星星并 emit 选中值

组件通过 props 接收当前评分,这个值可以不传,默认按 0 处理;星星部分则借助 v-for 渲染出 5 颗。用户点到哪一颗星,就用 $emit('update:rating', index),或者更通用一点的 $emit('rate', index),把对应的星级(例如 1~5)回传出去。

  • 推荐使用语义化事件名,如 ratechange,避免与 Vue 内置机制冲突
  • 注意索引处理:v-for="(star, i) in 5"i 是 0 起始,所以传 i + 1
  • 可加高亮逻辑:鼠标悬停或点击时,前面所有星星(包括当前)显示为实心星

父组件:监听事件并接收星级

@rate="handleRate"v-on:rate="handleRate" 监听子组件发出的事件,在方法中接收参数(即选中的星级),用于更新数据、提交表单或触发其他逻辑。

  • 可以直接赋值:this.userRating = rating
  • 也可配合 v-model 实现双向绑定(需子组件同时支持 modelValue prop 和 update:modelValue 事件)

具体来说,进阶:支持 v-model 双向绑定(Vue 3 推荐写法)

在子组件中,用 props.modelValue 替代自定义 prop,点击时调用 $emit('update:modelValue', i + 1);父组件直接写 v-model="userRating" 即可同步。

  • Vue 2 中需兼容写法:props: { value: Number } + $emit('input', ...)
  • Vue 3 中统一为 modelValueupdate:modelValue,更清晰且与 Composition API 一致

不复杂但容易忽略的是:确保子组件内点击事件没有被冒泡干扰,必要时加 @click.stop;另外,别忘了给星星元素设置合适的 cursor 和过渡效果,提升交互体验。

来源:https://www.php.cn/faq/2969207.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Bootstrap响应式步骤进度指示器:状态变化与图标展示实现

Bootstrap响应式步骤进度指示器:状态变化与图标展示实现

文章讲解用Bootstrap构建响应式步骤进度指示器,采用语义化导航结构、aria-current状态、CSS伪元素图标和动态连线,并限制未激活步骤的键盘访问。不同屏幕下布局会自动调整,进度切换还需绑定表单校验,确保界面状态与真实数据始终一致。

时间:2026-08-10 21:09
Vue3路由管理如何结合 Vue Router 4 实现路由懒加载和守卫

Vue3路由管理如何结合 Vue Router 4 实现路由懒加载和守卫

在里,路由懒加载和路由守卫最好配合着用:前者借助动态按需加载组件,能把首屏压力降下来;后者则借助守卫机制,比如,在页面跳转前先做拦截和校验,用来完成权限控制。两者一起上,性能和安全性才能与此同时兼顾。

时间:2026-08-10 20:38
Vue基础语法如何实现带分页功能的表格数据展示组件

Vue基础语法如何实现带分页功能的表格数据展示组件

借助的基础语法,就能把一个分页表格做得既可控又方便排查问题:先定义、、、这些响应式状态;再通过计算属性配合对进行动态截取,生成当前页要展示的数据;页码和每页条数用完成绑定,与负责在变更时触发数据更新。

时间:2026-08-10 20:38
Vue组件通信如何通过 Emit 回传评分星星组件当前选中的星级

Vue组件通信如何通过 Emit 回传评分星星组件当前选中的星级

里的评分组件,常见做法就是用把用户点选的星级回传给父组件:子组件先通过渲染出颗星,点击某一颗时触发事件,并把作为评分值传出去;父组件再通过监听接收这个值,同时也可以支持的双向绑定写法;如果是,对应。

时间:2026-08-10 20:38
Bootstrap侧边栏菜单如何在移动端通过手势滑动显示和隐藏

Bootstrap侧边栏菜单如何在移动端通过手势滑动显示和隐藏

移动端侧边栏滑动需原生监听计算位移,达阈值时调用;仅在移动端启用,绑定到等有高度的容器,防滚动,并留意视口变化干扰。。。移动端侧边栏滑动触发逻辑怎么写。本身不提供手势滑动()控制侧边栏显隐的功能,组件只响。

时间:2026-08-10 20:37
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜