【vue】Vue实例上的属性
Vue实例上的属性
- vm.$data
- vm.$props
- vm.$el
- vm.$refs
- vm.$options
- vm.$parent
- vm.$children
- vm.$root
- vm.$slots
- vm.$scopedSlots
- vm.$isServer
- vm.$attrs
- vm.$listeners
数据对象
。Vue实例代理了对其property的访问包括mixin和extend的data
2 vm.$props 当前组件接收到的
props对象
。Vue实例代理了对其property的访问3 vm.$el Vue实例使用的根DOM元素
4 vm.$refs 持有注册过ref的所有DOM元素和组件实例
组件内部有ref的DOM访问不到
5 vm.$options 当前Vue实例的初始化
选项
可以通过vm.$options去访问
自定义的属性
6 vm.$root 当前组件树的根Vue实例,若当前实例没有父实例,此实例将是其自己。
7 vm.$parent vm.$children 返回当前实例的父实例与直接子组件
$chidren
并不保证顺序,也不是响应式的8 vm.$slots 访问被
插槽分发
的内容,非响应式返回一个对象,包含插槽的Vnode
数组
//父组件
具名1
具名2
具名2
默认
//子组件
文章图片
9 vm.$scopedSlots 可以访问
作用域插槽
,以及默认插槽和具名插槽。返回一个对象,插槽为
函数
形式,返回Vnode数组//子组件
//父组件
具名1
具名2
默认
{{ item }}
文章图片
如果访问slot3,this.$scopedSlots.slot3()会返回undefined,v-for生成的标签访问不到
10 vm.$isServer 布尔值
当前Vue实例是否运行于服务器
服务端渲染(SSR)
11 vm.$attrs 包含父作用域中不作为prop被识别的attribute绑定。
当一个组件没有声明任何prop时,包含所有父作用域的绑定,并且通过v-bind="$attrs"传入内部组件
//父组件 - 正常传递数据
//子组件 - 未使用props接收 v-bind="$attrs"向下传递
//孙组件 可以使用props接收到祖组件传递的数据
{{ msg }}
在中间层使用v-bind="$attrs"可以实现祖孙组件的数据通信12 vm.$listeners 【【vue】Vue实例上的属性】包含父作用域中(不含
使用inheritAttrs选项来确认是否继承所有父组件的内容
在 子与孙组件中使用vm.$attrs
可以访问传递的数据
.native
修饰的) v-on
事件监听器可以通过
v-on="$listeners"
传入内部组件//父组件 - 正常的绑定一个事件
//子组件 未触发事件,通过v-on="$listeners"向下传递
//孙组件 触发事件
可以在孙组件中传递数据,在祖组件中处理
在 子与孙组件中可以使用vm.$listeners
访问监听的事件
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长