# Vue 实例属性

# $attrs

  • 保存着所有在组件中,未在props里定义的属性
  • 一般搭配inheritAttrs: false
  • 封装高阶组件使用较多

# $props

  • 保存着所有在组件中,在props中定义的属性

# $listeners

  • 保存着所有在副作用域中(不含.natvie)的v-on事件监听器;通过v-on传给子组件
  • 封装高阶组件使用较多
高阶组件
<template>
  <my-component v-bind="$attrs" v-on="$listeners"></my-component>
</template>

<script>
// ....
</script>

# $options

  • 保存着Vue实例中的所有自定义属性

# $slots

  • 保存着当前实例上所有插槽数据
this.$slots.default // 获取默认插槽

# $scopeSlots

  • 保存着当前实例上所有作用域插槽的数据
this.$scopeSlots.default(...args) // 获取默认作用域插槽