

本文介绍了Vue.js中ref ($refs)用法举例总结,分享给大家,具体如下:
看Vue.js文档中的ref部分,自己总结了下ref的使用方法以便后面查阅。
一、ref使用在外面的组件上
HTML 部分
<div id="ref-outside-component" v-on:click="consoleRef"> <component-father ref="outsideComponentRef"> </component-father> <p>ref在外面的组件上</p> </div>
js部分
 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实例
 }
 }
 });二、ref使用在外面的元素上
HTML部分
<!--ref在外面的元素上--> <div id="ref-outside-dom" v-on:click="consoleRef" > <component-father> </component-father> <p ref="outsideDomRef">ref在外面的元素上</p> </div>
JS部分
 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>
 }
 }
 });三、ref使用在里面的元素上---局部注册组件
HTML部分
<!--ref在里面的元素上--> <div id="ref-inside-dom"> <component-father> </component-father> <p>ref在里面的元素上</p> </div>
JS部分
 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
 }
 });四、ref使用在里面的元素上---全局注册组件
HTML部分
<!--ref在里面的元素上--全局注册--> <div id="ref-inside-dom-all"> <ref-inside-dom-quanjv></ref-inside-dom-quanjv> </div>
JS部分
 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"
 });
