猿问

vue关于ref的一个问题

这个例子中为什么结果是 [li, li, li, li, li, li]呢 而不是item对应的值呢?

<!DOCTYPE html><html><head>
    <title></title>
    <script type="text/javascript" src="vue.js"></script></head><body><div id="app">
    <ul>
        <li v-for="(item,index) in msg" ref=item @click=test()>{{item}}</li>
    </ul></body></div><script type="text/javascript">
        var test=new Vue({            el:'#app',            data:{                msg: ["a","b","c","d","e","f"]
            },            methods:{
                test(){                    console.log(this.$refs.item)
                }
            }
        })
         </script></html>


万千封印
浏览 1403回答 2
2回答

幕布斯6054654

理解错啦,ref的值从来都是元素或者组件,不会是你的a, b, c字符串的如果你想为每个li动态生成一个ref,之后获取点击的item,可以用以下代码<ul> &nbsp;&nbsp;&nbsp;&nbsp;<li&nbsp;v-for="(item,index)&nbsp;in&nbsp;msg"&nbsp;:ref="item"&nbsp;@click=test(item)>{{item}}</li></ul>test(item){ &nbsp;&nbsp;&nbsp;&nbsp;console.log(this.$refs[item]) }
随时随地看视频慕课网APP

相关分类

Vue.js
我要回答