Vue директив, как на 100% гарантировать, что компонент находится в документе - PullRequest
0 голосов
/ 17 июня 2020

Функции-перехватчики Объект определения директивы может предоставлять несколько функций-перехватчиков (все необязательные):

bind : вызывается только один раз, когда директива сначала привязан к элементу. Здесь вы можете выполнить одноразовую настройку.

вставлено : вызывается, когда связанный элемент был вставлен в его родительский узел (это гарантирует только присутствие родительского узла, не обязательно в- document).

update : вызывается после обновления VNode содержащего компонента, но, возможно, до обновления его дочерних элементов. Значение директивы могло измениться или не измениться, но вы можете пропустить ненужные обновления, сравнив текущее и старое значения привязки (см. Ниже аргументы ловушки).

componentUpdated : вызывается после содержащего VNode компонента и VNodes его дочерних элементов обновлены.

unbind : вызывается только один раз, когда директива не связана с элементом.

Ни один из них крючки гарантируют, что компонент в документе . Inserted работает, но, похоже, может потерпеть неудачу?

Как убедиться, что компонент действительно присутствует в документе?

1 Ответ

0 голосов
/ 17 июня 2020

{
  inserted: function (el) {
    document.contains(el) // true if element already exist in document
  },
}

Надеюсь, это поможет

...