码迷,mamicode.com
首页 > 其他好文 > 详细

【vue】ref($ref)用法

时间:2020-11-24 12:30:55      阅读:9      评论:0      收藏:0      [点我收藏+]

标签:mount   this   ons   获取   text   The   个数   pre   渲染   

ref 有三种用法:

  1、ref 加在普通的元素上,用this.ref.name 获取到的是dom元素

  2、ref 加在子组件上,用this.ref.name 获取到的是组件实例,可以使用组件的所有方法。

  3、如何利用 v-for 和 ref 获取一组数组或者dom 节点

  注意:

  1、ref 需要在dom渲染完成后才会有,在使用的时候确保dom已经渲染完成。比如在生命周期 mounted(){} 钩子中调用,或者在 this.$nextTick(()=>{}) 中调用。

  2、如果ref 是循环出来的,有多个重名,那么ref的值会是一个数组 ,此时要拿到单个的ref 只需要循环就可以了。

一、ref使用在外面的组件上

ref在外面的组件上

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作用在外面元素上
//ref在外面的元素上

ref在外面的元素上

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>标签dom元素 ref在外面的元素上</p>
        }
    }
});

三、ref使用在里面的元素上--局部注册组件
//ref在里面的元素上

ref在里面的元素上

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使用在里面的元素上--全局注册组件
//ref在里面的元素上--全局注册

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"
});

【vue】ref($ref)用法

标签:mount   this   ons   获取   text   The   个数   pre   渲染   

原文地址:https://www.cnblogs.com/n520-lzl/p/14009639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!