VueJS按键查找元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VueJS按键查找元素相关的知识,希望对你有一定的参考价值。

我只是想知道是否有可能通过vue的key属性找到一个DOM元素?我目前正在处理一份清单。我通过div上的v-for指令显示它。我将键绑定到元素的索引。

v-for="(apk, index) in project.apks" v-bind:key="index"

如果我可以从服务器中获取并显示这些元素的每一个,那么这对我有用。它只是解析文件并查找关键字,并相应地为项目选择一个css类。

问题是我不知道如何在将这些元素添加到DOM时为每个元素调用方法。他们是很多html事件,但我找不到一个代表插入到dom的对象:(

答案

问题是我不知道如何在将这些元素添加到DOM时为每个元素调用方法。他们是很多html事件,但我找不到一个代表插入到dom的对象:(

您可以使用v-for创建一个新组件,然后调用created()钩子。


/* On your main function */
<div v-for="apk in project.apks">
    <apk :data="apk"></apk>
</div>

/* On your 'apk' component */
export default {
    props: [ "data" ],
    created() {
        console.log("Created !");
    }
}
另一答案

key的目的不是选择元素。即使可以做到,也不要这样做。

正确的方法是使用ref

例如,像这样将ref属性添加到你的html

v-for="(apk, index) in project.apks" v-bind:key="index" :ref="'sample-ref-'+index"

然后在你的方法中,你可以使用this.$refs['sample-ref-0']this.$refs['sample-ref-1']等获得DOM。

希望这可以帮助。

另一答案

这样的事情可以让你按键找到一个组件:

this.$children.forEach(child=>{
 print("child.$vnode.key")
})

也可以使用mount,因为当组件被添加到dom时它被调用:

mounted:function(){
this.$el.querySelector("#ele1")...
}

以上是关于VueJS按键查找元素的主要内容,如果未能解决你的问题,请参考以下文章

在设备阵列上按键减少

在 VueJs 中按功能处理按键

vuejs学习笔记--属性,事件绑定,ajax

vuejs学习笔记--属性,事件绑定,ajax

Dcloud教程----vuejs基础

如何在 Vs Code 中更改默认自动选择的用户片段行为