VueUse OnClickOutside игнорирует параметры, которые не работают

я использую OnClickOutside из VueUse, код vue:

<template>
  <button class = "button" id = "button1" ref = "tempRef">AAA</button>
  <OnClickOutside id = "clickOutside" :options = "{ ignore: [tempRef] }" @trigger = "console.info(tempRef)">
    <button class = "button" id = "button2">BBB</button>
  </OnClickOutside>
</template>

<script setup>
import { OnClickOutside } from '@vueuse/components'
import { ref } from 'vue'

const tempRef = ref()
</script>

Итак, я ожидаю, что когда я нажму button1, OnClickOutside не сработает, поскольку tempRef находится внутри игнорирования. Но, оказывается, консоль все равно выводит tempRef, когда я нажимаю button1. Я пробовал некоторые настройки, но ничего не помогает. Я неправильно понимаю, как использовать игнор в OnClickOutside? Как это исправить? Спасибо за помощь

Вот документация для быстрого доступа: https://vueuse.org/core/onClickOutside/

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ссылки автоматически разворачиваются при использовании в шаблоне, поэтому вместо предоставления опции игнорирования объекта ref ему предоставляется внутреннее значение, не являющееся ссылкой. Если вы предоставите объект параметров, созданный в вашем коде <script>, он должен работать:

<template>
  <button id = "button1" ref = "tempRef" class = "button">AAA</button>
  <OnClickOutside
    id = "clickOutside"
    :options = "options"
    @trigger = "console.info(tempRef)"
  >
    <button id = "button2" class = "button">BBB</button>
  </OnClickOutside>
</template>

<script setup>
import { OnClickOutside } from '@vueuse/components'
import { ref } from 'vue'

const tempRef = ref()

const options = { ignore: [tempRef] }
</script>

Опции игнорирования также может быть присвоена строка выбора, поэтому вы можете использовать ее в качестве альтернативы, если вам нужно решение только для шаблона:

<OnClickOutside
  id = "clickOutside"
  :options = "{ ignore: ['#button1'] }"
  @trigger = "console.info(tempRef)"
>

Другие вопросы по теме