我想用 onMounted
来启动第三方库。为此,我需要组件元素作为其上下文。在 Vue 2 中,我会使用 this.$el
但不确定如何使用组合函数来实现。 setup
有两个参数,它们都不包含元素。
setup(props, context) {
onMounted(() => {
interact($el)
.resizable();
})
}
原文由 Damir Miladinov 发布,翻译遵循 CC BY-SA 4.0 许可协议
tl;博士:
在 Vue 3 中,组件不再仅限于 1 个根元素。隐含地,这意味着您不再拥有
$el
。您必须使用
ref
与模板中的任何元素进行交互:在
setup
函数中,您应该将root
实例化为const root = ref(null)
。在 Options API 中,只要在 — 之后,您就可以在任何方法或挂钩中使用
this.$refs.root
mounted()
。正如@AndrewSee 在评论中指出的那样,当使用渲染函数(不是模板)时,您可以在
createElement
选项中指定所需的ref
--- :初步答案:
如 文档 中所述,
您还有一个示例,说明如何
ref
“根”元素。显然,您不需要将其命名为 root。如果您愿意,请将其命名为$el
。但是,这样做并不意味着它将作为this.$el
提供,而是作为this.$refs.$el
。在 Vue 3 中,您不再仅限于
<template>
中的一个根元素,因此您必须明确ref
您想要与之交互的任何元素。2年后更新。
各种组件样式的特定语法(它们不是不同的解决方案,它们是编写同一事物的不同方式):
<script setup>
:<script setup lang="ts">
:选项 API :