vue3的使用getCurrentInstance
时间: 2023-12-20 17:57:43 浏览: 137
`getCurrentInstance` 是 Vue 3 中的一个 API,用于获取当前组件实例的引用。它在 Vue 2.x 中没有对应的 API。
在 Vue 3 中,我们可以使用 `getCurrentInstance` 来访问当前组件实例的所有属性和方法。例如,我们可以通过 `getCurrentInstance().props` 来访问组件的 props 数据,通过 `getCurrentInstance().emit()` 来触发事件。
下面是一个例子,演示了如何在 Vue 3 中使用 `getCurrentInstance`:
```vue
<template>
<div>
<p>当前组件名:{{ componentName }}</p>
<p>当前 prop 值:{{ propValue }}</p>
</div>
</template>
<script>
import { getCurrentInstance } from 'vue';
export default {
props: {
propValue: String,
},
setup() {
const instance = getCurrentInstance();
const componentName = instance.type.name;
return {
componentName,
};
},
};
</script>
```
在上面的例子中,我们使用 `getCurrentInstance` 获取当前组件实例的引用,并从中获取了组件的名称 `componentName`,然后将其作为响应式数据返回。我们还通过 `props` 访问了组件的 prop 数据 `propValue`,并在模板中展示了它们。
需要注意的是,在 `setup` 函数内使用 `getCurrentInstance` 才能获取到正确的组件实例,而在 `created` 和 `mounted` 等生命周期钩子函数中使用则会返回 `null`。
阅读全文