J'ai un composant, comment puis-je sélectionner l'un de ses éléments?
J'essaye d'obtenir une entrée qui est dans le modèle de ce composant.
Il peut y avoir plusieurs composants, de sorte que le sélecteur de requêtes ne doit analyser que l'instance actuelle du composant.
Vue.component('somecomponent', {
template: '#somecomponent',
props: [...],
...
created: function() {
somevariablehere.querySelector('input').focus();
}
});
Merci d'avance
la source
this.$el
n'est pas défini tant qu'il n'est pas monté. Si vous voulez initialiser une variable, faites-le dansmount()
vuejs 2
v-el:el:uniquename
a été remplacé parref="uniqueName"
. L'élément est ensuite accessible viathis.$refs.uniqueName
.la source
ref
attribut fonctionne sur n'importe quel élément HTML ou composant Vue. Bon produit.Les réponses ne sont pas claires:
Utilisez
this.$refs.someName
, mais, pour l'utiliser, vous devez ajouterref="someName"
le parent .Voir la démo ci-dessous.
$refs
etv-for
Notez que lorsqu'il est utilisé en conjonction avec
v-for
, lethis.$refs.someName
sera un tableau:la source
Dans Vue2, sachez que vous pouvez accéder à ceci. $ Refs.uniqueName uniquement après avoir monté le composant.
la source
Vue 2.x
Pour information officielle:
https://vuejs.org/v2/guide/migration.html#v-el-and-v-ref-replaced
Un exemple simple:
Sur n'importe quel élément, vous devez ajouter un attribut
ref
avec une valeur uniquePour cibler cette utilisation elemet
this.$refs.foo
la source
API de composition
La section des références de modèles indique comment cela a été unifié:
ref="myEl"
;:ref=
avec unv-for
const myEl = ref(null)
et exposez-le à partir desetup
La référence porte l'élément DOM à partir du montage.
la source