getCurrentInstance 保持 vue2 和 vue3 接口一致

This issue has been tracked since 2022-07-28.

What problem does this feature solve?

目前在做一个组件库,同时支持 vue2 和 vue3 的,想最新的 2.7.x 可以保持 getCurrentInstance 在 vue2 和 vue3 接口一致,目前 vue2 返回只有一个 proxy,用起来不是很方便

What does the proposed API look like?

在 vue2 场景下, getCurrentInstance 和 vue3 一致

YFengFly wrote this answer on 2022-08-06

即便 API 保持一致,也会遇到一些数据劫持的不同,Vue 2.7 依然需要 set 来绑定数据:
https://blog.vuejs.org/posts/vue-2-7-naruto.html
尤其若遇到 Vue 2.6 以及更低版本,配合了 @vue/componsition-api ,那么还会有更多的数据操作的不同,作为库作者都是要注意这些细节的。
既然如此,那么预先用 app.version / Vue.version 判断一下版本还是更合适一些

yyx990803 wrote this answer on 2022-08-09

getCurrentInstance 返回的是 internal instance,除了 proxy 外(等同于 public instance)其它属性都视为私有属性,想要保持一致应该避免使用除 proxy 外的其它属性。

More Details About Repo
Owner Name vuejs
Repo Name vue
Full Name vuejs/vue
Language TypeScript
Created Date 2013-07-29
Updated Date 2022-10-05
Star Count 199788
Watcher Count 6093
Fork Count 32878
Issue Count 590

YOU MAY BE INTERESTED

Issue Title Created Date Updated Date