首页 > 文章列表 > Vue3中关于getCurrentInstance的大坑怎么解决

Vue3中关于getCurrentInstance的大坑怎么解决

Vue3 getcurrentinstance
241 2023-05-20

解决方案

方案1.

const instance = getCurrentInstance()
console.log(instance.appContext.config.globalProperties)

获取挂载到全局中的方法

方案2.

const { proxy } = getCurrentInstance()

使用proxy线上也不会出现问题

vue3核心之getCurrentInstance

vue3.x中的核心方法,用于访问实例上下文的router及vuex等

1、概述:一个很重要的方法,获取当前组件的实例、上下文来操作router和vuex等。

2、使用:由vue提供,按需引入:import { getCurrentInstance} from 'vue'

import { getCurrentInstance } from 'vue';
// 获取当前组件实例
const instance = getCurrentInstance();
 
// 获取当前组件的上下文,下面两种方式都能获取到组件的上下文。
const { ctx }  = getCurrentInstance();  //  方式一,这种方式只能在开发环境下使用,生产环境下的ctx将访问不到
const { proxy }  = getCurrentInstance();  //  方式二,此方法在开发环境以及生产环境下都能放到组件上下文对象(推荐)
// ctx 中包含了组件中由ref和reactive创建的响应式数据对象,以及以下对象及方法;
proxy.$attrs
proxy.$data
proxy.$el
proxy.$emit
proxy.$forceUpdate
proxy.$nextTick
proxy.$options
proxy.$parent
proxy.$props
proxy.$refs
proxy.$root
proxy.$slots
proxy.$watch