vue3 setup oncontextmenu 无法返回鼠标事件参数
时间: 2023-11-17 22:09:21 浏览: 183
在 Vue 3 的 `setup` 中,可以使用 `onXXX` 的方式来绑定事件,例如 `onContextmenu` 来绑定右键菜单事件。但是在回调函数中,无法直接访问到鼠标事件参数。为了解决这个问题,可以使用 `ref` 来保存鼠标事件参数,然后在回调函数中使用。
示例代码如下:
```html
<template>
<div @contextmenu="handleContextmenu">右键点击此处</div>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const mouseEvent = ref(null)
const handleContextmenu = (event) => {
event.preventDefault()
mouseEvent.value = event
// 其他操作
}
return {
mouseEvent,
handleContextmenu
}
}
}
</script>
```
在上面的代码中,我们使用 `ref` 创建了一个名为 `mouseEvent` 的响应式对象,初始值为 `null`。在 `handleContextmenu` 回调函数中,我们将鼠标事件保存到 `mouseEvent` 中。在需要使用鼠标事件参数的地方,可以通过 `mouseEvent.value` 来获取。注意,由于 `mouseEvent` 是响应式对象,所以在使用时需要使用 `.value` 来访问其实际值。
阅读全文