vue-封装利器$attrs 和$listeners使用

一、vue通信手段有很多种,props/emit,vuex,eventbus,provide/inject等还有一种通信方式,那就是\(atttrs和\)listeners,
多级组件嵌套需要传递数据时,通常使用的方法是通过vuex,但仅仅是传递数据,不做中间处理,使用vuex处理,有点不合适,所以就有了\(attrs,\)listeners两个属性,通常配合inheriAttrs一起使用

二、\(attrs 从父组件传给自定义组件的属性,如果没有prop接受会自动设置到子组件内部的做外层标签上,如果是class和style的话,会合并最外层标签的class和style 如果子组件中不想继承父组件传入的非prop属性,可以使用inheritAttrs禁用继承,然后通过v-bind="\)attrs"把外部传入的非prop属性社会希望的标签上,但是这不会改变class和style

listeners: 包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。

先上代码:这里只举例focue、input两个原生事件

posted @ 2022-07-04 15:16  月花夕沉  阅读(168)  评论(0)    收藏  举报