Vue中ref 如何使用

2023-04-18 03:13:00 ref 如何使用 Vue

Vue中ref是一个指令,可以用来在Vue组件实例中引用其它元素或子组件。它可以被用来简化一些常见的操作,比如获取DOM元素或子组件实例,以及在元素或子组件上调用实例方法。

使用ref指令可以让我们在组件实例上添加一个属性,这个属性指向一个DOM元素或子组件实例,这样我们就可以在组件实例中访问到该元素或子组件实例。

ref指令的语法非常简单,只需要在元素上添加ref属性,并将其值设为一个字符串,最后在Vue实例中通过$refs属性访问该元素或子组件实例。

例如,我们可以在一个div元素上添加ref属性,并将其值设为“myDiv”,然后在Vue实例中通过$refs.myDiv访问该div元素。

<div ref="myDiv">...</div>

// 在Vue实例中
const div = this.$refs.myDiv
// 此时div就是该div元素的引用

ref指令也可以用在子组件上,这样我们就可以在父组件中访问子组件实例。例如,我们可以在一个子组件上添加ref属性,并将其值设为“myChild”,然后在父组件中通过$refs.myChild访问该子组件实例。

// 子组件
<template>
  <div>...</div>
</template>

<script>
export default {
  name: 'MyChild',
  ref: 'myChild'
}
</script>

// 父组件
<template>
  <div>
    <MyChild ref="myChild" />
  </div>
</template>

<script>
import MyChild from './MyChild.vue'

export default {
  components: {
    MyChild
  },
  mounted () {
    // 此时this.$refs.myChild就是MyChild组件实例的引用
    const child = this.$refs.myChild
  }
}
</script>

ref指令也可以用在组件的根元素上,这样我们就可以在父组件中访问组件实例。例如,我们可以在一个组件的根元素上添加ref属性,并将其值设为“myComponent”,然后在父组件中通过$refs.myComponent访问该组件实例。

// 子组件
<template>
  <div ref="myComponent">...</div>
</template>

<script>
export default {
  name: 'MyComponent'
}
</script>

// 父组件
<template>
  <div>
    <MyComponent ref="myComponent" />
  </div>
</template>

<script>
import MyComponent from './MyComponent.vue'

export default {
  components: {
    MyComponent
  },
  mounted () {
    // 此时this.$refs.myComponent就是MyComponent组件实例的引用
    const component = this.$refs.myComponent
  }
}
</script>

总之,ref指令可以用来简化一些常见的操作,比如获取DOM元素或子组件实例,以及在元素或子组件上调用实例方法。

相关文章