Sne*_*don 89 javascript vue.js
我有一个组件,我该如何选择其中一个元素?
我正在尝试获取该组件模板中的输入.
可能有多个组件,因此queryselector必须只解析组件的当前实例.
Vue.component('somecomponent', {
template: '#somecomponent',
props: [...],
...
created: function() {
somevariablehere.querySelector('input').focus();
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢
tar*_*uda 143
v-el:el:uniquename已被取代ref="uniqueName".然后通过访问该元素this.$refs.uniqueName.
vbr*_*den 85
你可以访问vuejs组件的子节点this.$children.如果要在当前组件实例上使用查询选择器this.$el.querySelector(...)
只是做一个简单的console.log(this)将显示vue组件实例的所有属性.
此外,如果您知道要在组件中访问的元素,则可以向其添加v-el:uniquename指令并通过它访问它this.$els.uniquename
acd*_*ior 36
答案没有说清楚:
使用this.$refs.someName,但是,为了使用它,您必须添加ref="someName"父项.
见下面的演示.
new Vue({
el: '#app',
mounted: function() {
var childSpanClassAttr = this.$refs.someName.getAttribute('class');
console.log('<span> was declared with "class" attr -->', childSpanClassAttr);
}
})Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.5.13/dist/vue.min.js"></script>
<div id="app">
Parent.
<span ref="someName" class="abc jkl xyz">Child Span</span>
</div>Run Code Online (Sandbox Code Playgroud)
$refs 和 v-for请注意,与其一起使用时v-for,this.$refs.someName 将是一个数组:
new Vue({
el: '#app',
data: {
ages: [11, 22, 33]
},
mounted: function() {
console.log("<span> one's text....:", this.$refs.mySpan[0].innerText);
console.log("<span> two's text....:", this.$refs.mySpan[1].innerText);
console.log("<span> three's text..:", this.$refs.mySpan[2].innerText);
}
})Run Code Online (Sandbox Code Playgroud)
span { display: inline-block; border: 1px solid red; }Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.5.13/dist/vue.min.js"></script>
<div id="app">
Parent.
<div v-for="age in ages">
<span ref="mySpan">Age is {{ age }}</span>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
Dom*_*dil 34
在Vue2中,请注意,只有在安装组件后才能访问.$ refs.uniqueName.
官方信息:
https://vuejs.org/v2/guide/migration.html#v-el-and-v-ref-replaced
一个简单的例子:
在任何元素上,您必须添加ref具有唯一值的属性
<input ref="foo" type="text" >
Run Code Online (Sandbox Code Playgroud)
以该 elemet 使用为目标 this.$refs.foo
this.$refs.foo.focus(); // it will focus the input having ref="foo"
Run Code Online (Sandbox Code Playgroud)