Доступ к экземплярам дочерних компонентов и элементов
Несмотря на наличие входных параметров и событий, иногда может потребоваться прямой доступ к дочернему компоненту в JavaScript. Для этого вы можете назначить ссылочный ID дочернему компоненту с помощью атрибута ref. Например:
<base-input ref="usernameInput"></base-input>Теперь в компоненте, где вы определили этот ref, вы можете использовать:
this.$refs.usernameInputдля доступа к экземпляру <base-input>. Это может быть полезно, если вы хотите например, программно добавить фокус на поле из родителя. В этом случае компонент <base-input> может аналогичным образом использовать ref чтобы обеспечить доступ к определённым элементам внутри него, например:
<input ref="input">И даже определить методы для использования родителем:
methods: {
  // Используется родителем для фокуса на input
  focus: function () {
    this.$refs.input.focus()
  }
}Таким образом мы позволим родительскому компоненту добавлять фокус на input внутри <base-input> с помощью:
this.$refs.usernameInput.focus()Когда ref используется вместе с v-for, то ref будет массивом, содержащим дочерние компоненты, отображаемых от источника данных.
$refs заполняются только после того, как компонент был отрисован, и они не реактивны. Это подразумевается только как обходной путь для прямого манипулирования потомками — вам следует избегать доступа к $refs из шаблонов или вычисляемых свойств.
Last updated
Was this helpful?
