vue3中使用hooks函数 访问不到getCurrentInstance
时间: 2024-01-23 13:44:57 浏览: 117
在 Vue3 中使用 Hooks 函数时,我们需要使用 `getCurrentInstance()` 方法来获取当前组件实例。这个方法只能在组件的生命周期方法中(如 `setup()`、`onMounted()`、`onUpdated()` 等)或自定义的 Hooks 函数中使用。
如果在组件外部或其他函数中使用 `getCurrentInstance()`,会返回 `null`。因此,我们需要在组件内部使用 Hooks 函数,或者将需要在组件外部使用的数据通过 props 或 provide/inject 注入到组件中。
以下是一个示例:
```vue
<template>
<div>
<p>Count: {{ count }}</p>
<button @click="increment">Increment</button>
</div>
</template>
<script>
import { ref, getCurrentInstance } from 'vue'
export default {
setup() {
const count = ref(0)
const instance = getCurrentInstance()
function increment() {
count.value++
console.log(instance) // 输出组件实例
}
return {
count,
increment
}
}
}
</script>
```
阅读全文