vue.js - 如何在 Vue3 中正确获取组件的 this.$el?
问题描述
我有一个组件,它的模板如下所示:
<template>
<slot />
</template>
我正在尝试制作的功能是关于resize-observer-polyfill
. 我正在尝试进入this.$el
,mounted()
然后创建一个ResizeObserver
.
但问题是,如果 slot 的内容是 an async-component
,那么我无法this.$el
正确获取。
我怎样才能解决这个问题?
解决方案
在 Vue 3 中,您可以使用模板 ref:
<template>
<div ref="el"></div>
</template>
import { ref, onMounted } from 'vue'
export default {
setup() {
const el = ref(null);
// Not available until the component mounts:
onMounted(() => {
console.log(el.value)
})
return {
el
}
}
}
推荐阅读
- javascript - 在嵌入标签中加载的 PDF 中禁用右键单击事件
- keycloak - 带有瑞典银行 ID 的 Keycloak
- json - 处理嵌入在字符串中的换行符
- for-loop - 在 Kotlin 的嵌套 for 循环中满足 If 条件时,将数据添加到 arrayList
- mysql - 使用 for 循环插入多个数据的 SQL 查询
- intellij-idea - 如何将文件头包含到已在 IntelliJIdea 中创建的所有 java 类和接口中
- node.js - NextJs 应用程序 100% CPU 使用率
- php - 如何在 Laravel 的模态中指定创建函数的可为空值?
- ios - 从 mapAnotaion 获取对象并使用 segue 传递它
- python - opencv安装递归