Vue的ref特性如何高效应用于组件实例和DOM元素的引用?

2026-04-05 10:3411阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计584个文字,预计阅读时间需要3分钟。

Vue的ref特性如何高效应用于组件实例和DOM元素的引用?

一、ref的基本使用使用ref,可以通过ref属性绑定一个DOM节点,通过ref的值可以直接访问到DOM节点。

二、ref的使用在Vue中,可以通过ref属性绑定一个DOM节点,并通过ref的值访问该节点。

例如:Hello, world!

在JavaScript中,可以访问到div节点:javascriptthis.$refs.myDiv.textContent='Hello, ref!';

三、vm.$refs.p将会是DOM节点当在普通DOM元素上使用ref时,`vm.$refs.p`将指向对应的DOM节点。

例如:Hello, p!

在JavaScript中,可以访问到div节点:javascriptconsole.log(this.$refs.p.textContent); // 输出:Hello, p!

Vue的ref特性如何高效应用于组件实例和DOM元素的引用?

四、vm.$refs.child将会是子组件实例当在子组件上使用ref时,`vm.$refs.child`将指向子组件的实例。

例如:

在JavaScript中,可以访问到子组件实例:javascriptconsole.log(this.$refs.child.someMethod()); // 调用子组件的方法

一、ref的基本使用

ref的使用

<!-- `vm.$refs.p`将会是DOM结点 --> <p ref="p">hello</p> <!-- `vm.$refs.child`将会是子组件实例 --> <child-component ref="child"></child-component>

如果在普通的 DOM 元素上使用,引用指向的就是DOM 元素如果用在子组件上,引用就指向组件实例

深入理解$refs

某组件的$refs含有该组件的所有ref,看下面的例子

<div id="app"> <p ref="p">hello</p> <child-component ref="child"></child-component> </div> <script> Vue.component('child-component', { template: '<h1>child-component </h1>' }) let vm = new Vue({ el: '#app' }) </script>

从上图中我们很容易发现
vm.$refs返回了一个对象,这个对象内有两个成员,包含了vm实例的所有ref
vm.$refs.p是DOM 元素
vm.$refs.child是组件实例

二、实战:通过ref获取子组件data

看下面的例子

<div id="app"> <counter ref="child1" @change="handleChange"></counter> <counter ref="child2" @change="handleChange"></counter> <div>{{sum}}</div> </div> <script> // counter组件,实现每点击一次,自增1 Vue.component('counter', { template: '<h3 @click="handleClick">{{count}}</h3>', data() { return { count: 0 } }, methods: { handleClick() { this.count += 1; this.$emit('change') } } }) let vm = new Vue({ el: '#app', data: { sum: 0 }, methods: { handleChange() { this.sum = this.$refs.child1.count + this.$refs.child2.count // 使用refs获取子组件的数据 } } }) </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计584个文字,预计阅读时间需要3分钟。

Vue的ref特性如何高效应用于组件实例和DOM元素的引用?

一、ref的基本使用使用ref,可以通过ref属性绑定一个DOM节点,通过ref的值可以直接访问到DOM节点。

二、ref的使用在Vue中,可以通过ref属性绑定一个DOM节点,并通过ref的值访问该节点。

例如:Hello, world!

在JavaScript中,可以访问到div节点:javascriptthis.$refs.myDiv.textContent='Hello, ref!';

三、vm.$refs.p将会是DOM节点当在普通DOM元素上使用ref时,`vm.$refs.p`将指向对应的DOM节点。

例如:Hello, p!

在JavaScript中,可以访问到div节点:javascriptconsole.log(this.$refs.p.textContent); // 输出:Hello, p!

Vue的ref特性如何高效应用于组件实例和DOM元素的引用?

四、vm.$refs.child将会是子组件实例当在子组件上使用ref时,`vm.$refs.child`将指向子组件的实例。

例如:

在JavaScript中,可以访问到子组件实例:javascriptconsole.log(this.$refs.child.someMethod()); // 调用子组件的方法

一、ref的基本使用

ref的使用

<!-- `vm.$refs.p`将会是DOM结点 --> <p ref="p">hello</p> <!-- `vm.$refs.child`将会是子组件实例 --> <child-component ref="child"></child-component>

如果在普通的 DOM 元素上使用,引用指向的就是DOM 元素如果用在子组件上,引用就指向组件实例

深入理解$refs

某组件的$refs含有该组件的所有ref,看下面的例子

<div id="app"> <p ref="p">hello</p> <child-component ref="child"></child-component> </div> <script> Vue.component('child-component', { template: '<h1>child-component </h1>' }) let vm = new Vue({ el: '#app' }) </script>

从上图中我们很容易发现
vm.$refs返回了一个对象,这个对象内有两个成员,包含了vm实例的所有ref
vm.$refs.p是DOM 元素
vm.$refs.child是组件实例

二、实战:通过ref获取子组件data

看下面的例子

<div id="app"> <counter ref="child1" @change="handleChange"></counter> <counter ref="child2" @change="handleChange"></counter> <div>{{sum}}</div> </div> <script> // counter组件,实现每点击一次,自增1 Vue.component('counter', { template: '<h3 @click="handleClick">{{count}}</h3>', data() { return { count: 0 } }, methods: { handleClick() { this.count += 1; this.$emit('change') } } }) let vm = new Vue({ el: '#app', data: { sum: 0 }, methods: { handleChange() { this.sum = this.$refs.child1.count + this.$refs.child2.count // 使用refs获取子组件的数据 } } }) </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。