Vue.js использование refs

148
05 января 2019, 11:50

Всем привет ,как будет выглядеть если явную работу с DOM тут заменить на refs? У меня что-то не выходит так заменить

const holder = document.querySelector('.item');
      holder.ondragover = (event) => {
        event.preventDefault();
        event.stopPropagation();
        holder.classList.add('holder--dragover');
        return false
      };
      holder.ondragleave = holder.ondragend = holder.ondrop = (event) => {
        event.preventDefault();
        event.stopPropagation();
        holder.classList.remove('holder--dragover');
        return false
      };
Answer 1

Ставите элементу ref:

<div ref="holder" class="item"></div>

Если такой элемент на странице будет один, то получить можно через

this.$refs.holder

Если много, то:

this.$refs.holder[<индекс элемента>]

У вас по коду скорее всего один элемент, вот так будет выглядеть код:

const holder = this.refs.holder;
holder.ondragover = (event) => {
  event.preventDefault();
  event.stopPropagation();
  holder.classList.add('holder--dragover');
  return false
};
holder.ondragleave = holder.ondragend = holder.ondrop = (event) => {
  event.preventDefault();
  event.stopPropagation();
  holder.classList.remove('holder--dragover');
  return false
};

Подробнее ТУТ.

READ ALSO
&ldquo;поделиться&rdquo; от Яндекса data-url не работает

“поделиться” от Яндекса data-url не работает

В data-url ссылка на конкретный объект, однако "поделиться" срабатывает на всю страницу

195
Перезагрузить модуль NodeJs

Перезагрузить модуль NodeJs

У меня есть файл comp1js, я запускаю его require("

194
element.appendChild() как выполнить действие после вставки элемента, есть ли коллбек?

element.appendChild() как выполнить действие после вставки элемента, есть ли коллбек?

Мне нужно программно сформировать iframe на странице и потом отправить в него postMessageНа момент отправки сообщения элемент ещё не отрисовался

166