使用ref获取DOM元素和组建引用

 ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例

关于 ref 注册时间的重要说明:因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在!$refs 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../../node_modules/vue/dist/vue.js"></script>


</head>
<body>
<div id="app">
    <input type="button" value="获取元素" @click="getElement" ref="mybt">
    <h3 id="myh3" ref="myh3">今日天气好晴朗,处处好风光</h3>

    <hr>

    <login ref="mylogin"></login>
</div>

<script type="text/javascript">
        var login ={
            template:'<h1>登陆组件</h1>',
            data(){
                return{
                    msg:'son msg'
                }
            },
            methods: {
                show(){
                    console.log('调用了组件的方法')
                }
            },

        }

    var vm = new  Vue({
        el:'#app',
        data:{},
        methods:{
            getElement(){
                //普通获取元素方法
                console.log(document.getElementById('myh3').innerText)
                //ref获取DOM元素
                console.log(this.$refs.myh3.innerText)
                //ref引用组件元素
                console.log(this.$refs.mylogin.msg)
                //ref引用show方法
                this.$refs.mylogin.show()
            }

        },
        components:{
            login
        }



    })
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值