美文网首页
vue $attrs, $listeners

vue $attrs, $listeners

作者: Sharise_Mo佩珊 | 来源:发表于2021-02-20 14:42 被阅读0次

vm.$attrs

包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。

简单点讲就是包含了所有父组件在子组件上设置的属性(除了prop传递的属性、class 和 style )。

<!-- 在父组件中传入total/disabled/visible/toa属性,监听size-change和current-change方法-->
<pk-pagination :total="pagination.total"  disabled visible :toa="1"
  @size-change="handleSizeChange" @current-change="handleCurrentChange" @aa="handleCurrentChange"/>
// 在子组件中打印 $attrs, $listeners
export default {
  props: {
    total: {
      type: Number,
      default: 0
    }
  },
  mounted() {
    console.log(this.$attrs)
    console.log(this.$listeners)
  }
}
image.png
  • 打印 attrs 输出了父组件中的disabled, visible,toa。打印了除props和class,style 之外的所有属性(上面的total已经通过props传递,所以$attrs中不会包含此属性)
  • 打印$listeners, 直接输出所有的方法

vm.$listeners

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

简单点讲它是一个对象,里面包含了作用在这个组件上所有的监听器(监听事件),可以通过 v-on="$listeners" 将事件监听指向这个组件内的子元素(包括内部的子组件)。
为了查看方便,我们设置inheritAttrs: true,后面补充一下inheritAttrs。

<!--接着上面,直接绑定父组件除了props/class/style 以外的所有属性。将父组件的事件监听指向子组件-->
<el-pagination
      :current-page="page"
      :page-sizes="pageSizes"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      size="small"
      v-bind="$attrs"
      v-on="$listeners" />

相关文章

  • vue $attrs, $listeners

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

  • Vue2.4 $attrs、$listeners、inherit

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

  • Vue组件间11种通信方式的简要介绍

    Vue组件的通信方式大致有这11(12)种 常用的Props $attrs & $listeners provid...

  • vue $attrs与$listeners

    在组件多级嵌套的情况下,相互间的传值是这样的呢 ? A 根组件B 子组件C 孙组件... 在很多开发情况下,我们只...

  • vue $attrs 与$listeners

    参考https://blog.csdn.net/songxiugongwang/article/details/8...

  • vue 的$attrs $listeners

    组件多级嵌套,相互传递如何实现的A:父组件B:子组件C:孙组件在开发过程中,有时候想把某些数据从A组件传递给C组件...

  • $listeners /$attrs

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

  • VUE $attrs/$listeners 的用法

    要实现的组件数据传递如下: 数据交互实现 1.当然可以使用prop $emit 一级一级的往下传递,这种方式不多讲...

  • vue组件通信的几种方式

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

  • vue中的$attrs和$listeners

    在组件多级嵌套的情况下,相互间的传值是这样的呢 ? A组件(父组件)➡️B组件(子组件)➡️C组件(孙组件) 在很...

网友评论

      本文标题:vue $attrs, $listeners

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