Vue的Ref属性
作者:高天阳
邮箱:13683265113@163.com
更改历史
* 2018-08-07 高天阳 初始化文档1 Vue的ref和$refs属性
1.1 简介
ref被用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的$refs对象进行注册。 如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例
注意:只要想要在Vue中直接操作DOM元素,就必须用ref属性进行注册
<!-- vm.$refs.p will the DOM node -->
<p ref='p'>hello</p>
<!-- vm.$refs.child will be child comp instance -->
<child-comp ref='child'></child-comp>示例:
<div class="goods">
<div class="menu-wrapper" ref="menuWrapper">
<ul>
<li v-for="item in goods" class="menu-item">
<span class="text border-1px">
<span v-show="item.type>0" class="icon" v-bind:class="classMain">
{{item.name}}
</span>
</span>
</li>
</ul>
</div>
</div>
<div class="foods-wrapper" ref="foodsWrapper">
<ul>
<li v-for="item in goods" class="food-list"></li>
</ul>
</div>这里为了在create的时候引用DOM元素,先在DOM中使用ref标签进行了注册,然后便可以通过’this.$refs’再跟注册时的名称来引用DOM元素了
2 vue中的ref和$refs
2.1 vm.$refs
类型:
Object只读
详细:
一个对象,持有已注册过的ref特性的所有子组件
2.2 ref
预期:
string
ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$refs对象上。如果在普通的 DOM 元素上使用, 引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例:
当 v-for 用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组。
关于 ref 注册时间的重要说明:因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在! $refs 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。
参考:子组件 子组件Refs
3 ref的使用实例
3.1 ref使用在外面的组件上
3.2 ref使用在外面的元素上
3.3 ref使用在里面的元素上---局部注册组件
3.4 ref使用在里面的元素上---全局注册组件
Last updated
Was this helpful?