VueJs obtention d'un élément à l'intérieur d'un composant
J'ai un composant, comment puis-je choisir l'un de ses éléments?
je vais essayer d'obtenir un niveau d'entrée qui est au sein de cette composante du modèle.
Il pourrait y avoir plusieurs composants de sorte que le queryselector doit analyser uniquement l'instance actuelle de la composante.
Vue.component('somecomponent', {
template: '#somecomponent',
props: [...],
...
created: function() {
somevariablehere.querySelector('input').focus();
}
});
Merci d'avance
Vous devez vous connecter pour publier un commentaire.
vous pouvez accéder les enfants d'un vuejs composant avec
this.$children
. si vous souhaitez utiliser la requête sélecteur sur le composant en cours d'instance puisthis.$el.querySelector(...)
juste faire une simple
console.log(this)
va vous montrer toutes les propriétés d'une vue instance de composant.en outre, si vous connaissez l'élément auquel vous souhaitez accéder dans votre composant, vous pouvez ajouter le
v-el:uniquename
directive et d'y accéder viathis.$els.uniquename
this.$el
est pas défini jusqu'à la montée. Si vous souhaitez initialiser une variable le faire dansmount()
vuejs 2
v-el:el:uniquename
a été remplacé parref="uniqueName"
. L'élément est alors accessible par le biais dethis.$refs.uniqueName
.ref
attribut fonctionne sur n'importe quel élément HTML ou de la Vue de composant. De bonnes choses.Dans Vue2 sachez que vous pouvez accéder à cela.$réf.uniqueName seulement après le montage de la composante.
Les réponses ne sont pas claires:
Utilisation
this.$refs.someName
, mais, pour l'utiliser, vous devez ajouterref="someName"
dans le parent.Voir démonstration ci-dessous.
JS:
HTML:
$refs
etv-for
Avis que lorsqu'il est utilisé en conjonction avec
v-for
, lethis.$refs.someName
sera un tableau:JS:
CSS:
HTML: