Tengo un componente, ¿cómo puedo seleccionar uno de sus elementos?
Estoy tratando de obtener una entrada que esté dentro de la plantilla de este componente.
Puede haber varios componentes, por lo que el selector de consultas solo debe analizar la instancia actual del componente.
Vue.component('somecomponent', {
template: '#somecomponent',
props: [...],
...
created: function() {
somevariablehere.querySelector('input').focus();
}
});
Gracias por adelantado
fuente
this.$el
no está definido hasta que se monta. Si desea inicializar una variable, hágalo enmount()
vuejs 2
v-el:el:uniquename
ha sido reemplazado porref="uniqueName"
. A continuación, se accede al elemento a través dethis.$refs.uniqueName
.fuente
ref
atributo funciona en cualquier elemento HTML o componente Vue. Buen material.Las respuestas no lo dejan claro:
Use
this.$refs.someName
, pero, para usarlo, debe agregarref="someName"
el parent .Vea la demostración a continuación.
$refs
yv-for
Tenga en cuenta que cuando se usa junto con
v-for
,this.$refs.someName
será una matriz:fuente
En Vue2, tenga en cuenta que puede acceder a este. $ Refs.uniqueName solo después de montar el componente.
fuente
Vue 2.x
Para información oficial:
https://vuejs.org/v2/guide/migration.html#v-el-and-v-ref-replaced
Un ejemplo simple:
En cualquier elemento, debe agregar un atributo
ref
con un valor únicoPara apuntar a ese uso de elemet
this.$refs.foo
fuente
API de composición
La sección de referencias de la plantilla indica cómo se ha unificado esto:
ref="myEl"
;:ref=
con unv-for
const myEl = ref(null)
y exponerlo desdesetup
La referencia lleva el elemento DOM desde el montaje en adelante.
fuente