VueJS模板引用未定义多个div?

Posted

技术标签:

【中文标题】VueJS模板引用未定义多个div?【英文标题】:VueJS template ref undefined with multiple divs? 【发布时间】:2018-07-14 10:06:36 【问题描述】:

我有一个简单的 vue 组件,我尝试从模板中获取 DOM 元素。这是组件,它工作正常:

<template>
        <div ref="cool">COOL!</div>
</template>

<script>
    export default 
        data() 
            return 
                blabla: 1
            
        ,
        mounted() 
            console.log("MOUNTED:");
            var cool = this.$refs.cool;
            console.log(cool);  //works!
        
    
</script>

现在奇怪的事情:我在我的模板中添加了另一个元素,不管是哪个元素......例如。一个新的 div:

<template>
        <div ref="cool">COOL!</div>
        <div>I am new</div>
</template>

现在mounted() 中的console.log 返回未定义。

【问题讨论】:

【参考方案1】:

Vue 要求您拥有一个***元素,因此您需要将整个内容包装在 div 中:

<template>
  <div>
    <div ref="cool">COOL!</div>
     <div>I am new</div>
  </div>
</template>

这是 JSFiddle:https://jsfiddle.net/nrtkr6cL/

【讨论】:

以上是关于VueJS模板引用未定义多个div?的主要内容,如果未能解决你的问题,请参考以下文章

vuejs - 模板,商店,this.$store 未定义

Vuejs 属性或方法未在实例上定义,但在渲染期间引用

VueJS <script> 模板 - 小胡子括号中未定义道具

(Vuejs)属性或方法未在实例上定义,但在渲染期间引用

未捕获的类型错误:无法读取 VueJs 中未定义的属性“get”

VueJS路由器查看反应道具未定义