Vue2中ref属性的用法
最近写东西遇到了莫名其妙的问题,用ref属性原以为它会获得一个数组http://www.jianshu.com/p/05c863ec2a23// htmlul> li ref="refCon">1li> li ref="refCon">2li>ul>// jscreated: function() { this.$nextTick(() => { console.
·
最近写东西遇到了莫名其妙的问题,用ref属性原以为它会获得一个数组http://www.jianshu.com/p/05c863ec2a23
// html
<ul>
<li ref="refCon">1</li>
<li ref="refCon">2</li>
</ul>
// js
created: function() {
this.$nextTick(() => {
console.log(this.$refs.refCon)
// 打印结果:<li>2</li> 本以为会获得一个数组
})
}
后来去看了下文档才搞明白orz。(没仔细看文档的锅
这下就明白了
// html
<ul>
<li v-for="item in people" ref="refContent">{{item}}</li>
</ul>
// js
data: {
people:['三姑','四婶','五叔','六姨','七舅姥爷']
},
created: function() {
this.$nextTick(() => {
console.log(this.$refs.refContent)
})
}
以及一定要注意
// js
data: {
people:['三姑','四婶','五叔','六姨','七舅姥爷']
},
created: function() {
console.log(this.$refs.refContent)
// undefined
}
<div id="app">
<navbar></navbar>
<pagefooter></pagefooter>
</div>
Vue.component('navbar',{
template:'#navbar',
data:function () {
return {
navs:[]
}
}
});
Vue.component('pagefooter',{
template:'#pagefooter',
data:function () {
return {
footer:''
}
}
});
new Vue({
el:'#app',
mounted:function () {
//ready,
//这里怎么直接访问navbar的navs和pagefooter的footer值呢,
}
})
这就用到ref了
修改组件
<div id="app">
<navbar ref="navbar"></navbar>
<pagefooter ref="pagefooter"></pagefooter>
</div>
new Vue({
el:'#app',
mounted:function () {
//ready,
//这里怎么直接访问navbar的navs和pagefooter的footer值呢,
console.log(this.$refs.navbar.navs);
console.log(this.$refs.pagefooter.footer);
}
})
如果仅仅用到一个普通标签上
<div ref="demo"></div>
他的作用和:
document.querySelector('[ref=demo]');
的作用一样
更多推荐
已为社区贡献259条内容
所有评论(0)