美文网首页让前端飞
Attrs 和 Listeners

Attrs 和 Listeners

作者: littleyu | 来源:发表于2019-05-14 16:21 被阅读1次

这两个属性是 vue 2.4 版本之后提供的,它简直是二次封装组件或者说写高阶组件的神器。在我们平时写业务的时候免不了需要对一些第三方组件进行二次封装。比如我们需要基于 el-select 分装一个带有业务特性的组件,根据输入的 name 搜索用户,并将一些业务逻辑分装在其中。但 el-select 这个第三方组件支持几十个配置参数,我们当然可以适当的挑选几个参数通过 props 来传递,但万一哪天别人用你的业务组件的时候觉得你的参数少了,那你只能改你封装的组件了,亦或是哪天第三方组件加入了新参数,你该怎么办?

其实我们的这个组件只是基于 el-select 做了一些业务的封装,比如添加了默认的 placeholder,封装了远程 ajax 搜索请求等等,总的来说它就是一个中间人组件,只负责传递数据而已。

这时候我们就可以使用 v-bind="$attrs" :传递所有属性、v-on="$listeners" 传递所有方法。如下图所示:

这样,我们没有在 $props 中声明的方法和属性,会通过 $attrs$listeners 直接传递下去。这两个属性在我们平时分装第三方组件的时候非常有用!

相关文章

  • Attrs 和 Listeners

    这两个属性是 vue 2.4 版本之后提供的,它简直是二次封装组件或者说写高阶组件的神器。在我们平时写业务的时候免...

  • $attrs和$listeners

    $attrs 属于组件的一个属性,可以获取到父组件传递过来的props数据对于子组件而言,父组件给的数据可以利用p...

  • $listeners /$attrs

    使用方法概括: $attrs 是 父组件绑定给子组件的属性(prop里声明的除外) $listeners 是父...

  • Vue2.4 $attrs、$listeners、inherit

    在开始介绍之前先看下vue官方文档对 $attrs和 $listeners的解释: vm.$attrs包含了父作用...

  • 在Vue中使用JSX踩坑指南

    1.组件使用$attrs和$listeners传递参数时: 发现v-bind和v-on都不好用了,因为$attrs...

  • vue组件通信的几种方式

    1、props 2、$.emit $.on 3、$attrs, $listeners 4、provide / in...

  • $attrs和$listeners的使用

    vue中使v-bind="attrs",将父组件中不被认为props特性绑定的属性(即在父组件中或者说时中间组件中...

  • $attrs, $listeners, inheritAttrs

    2018-06-15创建 组价通信 vue中一个比较令人烦恼的事情是属性只能从父组件传递给子组件。这也就意味着当你...

  • $attrs 与 $listeners

    本文转自[https://juejin.cn/user/2858385961407853] 学会使用listene...

  • vue $attrs, $listeners

    vm.$attrs 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style...

网友评论

    本文标题:Attrs 和 Listeners

    本文链接:https://www.haomeiwen.com/subject/lgfeaqtx.html