【问题标题】:Vue 3: Is getCurrentInstance() deprecated?Vue 3:getCurrentInstance() 是否已弃用?
【发布时间】:2022-07-12 05:17:44
【问题描述】:

我在一些旧的(?)文档和代码中看到了对 getCurrentInstance() 函数的引用,但在当前的 Vue 3 文档中找不到它。

getCurrentInstance() 是否已弃用?

如果是这样,原因是什么? (inject() 考虑够了吗?)如果没有,为什么我在文档中找不到?

【问题讨论】:

    标签: vue.js vuejs3


    【解决方案1】:

    getCurrentInstance() 已从 Vue 3 文档中删除,因为它是 internal API

    因为实例是公开非公共 API 的内部实例。从该实例中使用的任何内容在技术上都可以在任何版本类型之间中断,因为它们不受 semver 约束。


    getCurrentInstance() 最初是 documented in 4-Oct-2020,但后来 removed in 31-Aug-2021 由 Vue 的创建者 (Evan You) 对 Composition API 文档进行了重大重构。尽管它已从文档中删除,getCurrentInstance() 仍然:

    鉴于它是一个未记录的内部 API,请谨慎使用。

    【讨论】:

    • 我为这个错误浪费了大量时间。如果任何维护者阅读了它,请不要如此激进地破坏更改。
    【解决方案2】:

    https://github.com/vuejs/vue/issues/12596#issuecomment-1173269807

    引用埃文的评论,

    getCurrentInstance 主要用于需要额外内部访问的官方 vue 库,而不是用于用户态应用程序代码。它被错误地记录在 WIP v3 文档中,但不再被视为公共 API

    【讨论】:

      最近更新 更多