原文:http://www.jianshu.com/p/3bd8a2b07d57html
看Vue.js文檔中的ref部分,本身總結了下ref的使用方法以便後面查閱。vue
1、ref使用在外面的組件上
HTML 部分dom
<div id="ref-outside-component" v-on:click="consoleRef"> <component-father ref="outsideComponentRef"> </component-father> <p>ref在外面的組件上</p> </div>
js部分ide
var refoutsidecomponentTem={ template:"<div class='childComp'><h5>我是子組件</h5></div>" }; var refoutsidecomponent=new Vue({ el:"#ref-outside-component", components:{ "component-father":refoutsidecomponentTem }, methods:{ consoleRef:function () { console.log(this); // #ref-outside-component vue實例 console.log(this.$refs.outsideComponentRef); // div.childComp vue實例 } } });
2、ref使用在外面的元素上
HTML部分post
<!--ref在外面的元素上--> <div id="ref-outside-dom" v-on:click="consoleRef" > <component-father> </component-father> <p ref="outsideDomRef">ref在外面的元素上</p> </div>
JS部分this
var refoutsidedomTem={ template:"<div class='childComp'><h5>我是子組件</h5></div>" }; var refoutsidedom=new Vue({ el:"#ref-outside-dom", components:{ "component-father":refoutsidedomTem }, methods:{ consoleRef:function () { console.log(this); // #ref-outside-dom vue實例 console.log(this.$refs.outsideDomRef); // <p> ref在外面的元素上</p> } } });
3、ref使用在裏面的元素上---局部註冊組件
HTML部分url
<!--ref在裏面的元素上--> <div id="ref-inside-dom"> <component-father> </component-father> <p>ref在裏面的元素上</p> </div>
JS部分code
var refinsidedomTem={ template:"<div class='childComp' v-on:click='consoleRef'>" + "<h5 ref='insideDomRef'>我是子組件</h5>" + "</div>", methods:{ consoleRef:function () { console.log(this); // div.childComp vue實例 console.log(this.$refs.insideDomRef); // <h5 >我是子組件</h5> } } }; var refinsidedom=new Vue({ el:"#ref-inside-dom", components:{ "component-father":refinsidedomTem } });
4、ref使用在裏面的元素上---全局註冊組件
HTML部分component
<!--ref在裏面的元素上--全局註冊--> <div id="ref-inside-dom-all"> <ref-inside-dom-quanjv></ref-inside-dom-quanjv> </div>
JS部分htm
Vue.component("ref-inside-dom-quanjv",{ template:"<div class='insideFather'> " + "<input type='text' ref='insideDomRefAll' v-on:input='showinsideDomRef'>" + " <p>ref在裏面的元素上--全局註冊 </p> " + "</div>", methods:{ showinsideDomRef:function () { console.log(this); //這裏的this其實仍是div.insideFather console.log(this.$refs.insideDomRefAll); // <input type="text"> } } }); var refinsidedomall=new Vue({ el:"#ref-inside-dom-all" });