在vue2中,我们进程看到 this.$el 操作。但是在vue3 如何获取组件的当前 dom 元素呢? 可以利用 getCurrentInstance

getCurrentInstance

Vue3.x中的核心方法:getCurrentInstance,用于 获取当前组件的实例、上下文来操作router和vuex等

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

Logo

前往低代码交流专区

更多推荐