Vue组件分装之$attrs、$listener传递属性及事件

使用v-bind="$attrs"来将父组件的属性传递给自定义按钮

使用v-on="$listeners"将父组件的事件监听器传递给自定义按钮。

使用$slots获取父组件所有插槽以及作用域插槽对应的参数#[name]="scopeData"

这样,自定义按钮就能够直接响应父组件的事件,而不需要手动触发。

javascript 复制代码
  <Select ref="selectRef" v-bind="$attrs" v-on="$listener">
    <template v-for="(value, name) in $slots" #[name]="scopeData">
      <slot :name="name" v-bind="scopeData || {}"></slot>
    </template>
    <Option v-for="(item, index) in optionDatas" :value="item.value" :key="item.value + index">{{
      item.label
    }}</Option>
  </Select>
相关推荐
apollo_qwe40 分钟前
深入解析Vue的mixins与hooks:复用逻辑的两种核心方式
vue.js
_AaronWong1 小时前
Vue3+Element Plus 通用表格组件封装与使用实践
前端·javascript·vue.js
wuhen_n2 小时前
patch算法:新旧节点的比对与更新
前端·javascript·vue.js
wuhen_n2 小时前
Diff算法基础:同层比较与key的作用
前端·javascript·vue.js
随逸1772 小时前
《从零搭建NestJS项目》
数据库·typescript
加号317 小时前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏18 小时前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐18 小时前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
Xin_z_18 小时前
Vue3 + Sticky 锚点跳转被遮挡问题解决方案
前端·javascript·vue.js
荒诞英雄18 小时前
Vue3 Teleport我真是没招了
前端·vue.js