zoukankan      html  css  js  c++  java
  • vue之使用ref获取DOM元素和组件引用

    • 说明: vm.$refs 是一个对象,拥有已注册过 ref 的所有元素(或者子组件)
    • 使用: 在HTML元素中,添加ref属性,然后在JS中通过vm.$refs.属性来获取
    • 注意: 如果获取的是一个子组件,通过 ref 就能获取到子组件中的 data 和 methods

    添加 ref 属性

     <div id='app'>
            <input type="button" value="获取元素" @click="getElement" ref="mybtn">
            <h3 ref="myh3">哈哈哈哈哈</h3>
            <hr>
            <login ref="mylogin"></login>
     </div>

    在控制台输出,vm实例身上的属性,如图: 这里就是所有 注册过 ref 的元素

    调用子组件的引用

    <!DOCTYPE html>
    <html lang='en'>
    
    <head>
        <meta charset='UTF-8'>
        <meta name='viewport' content='width=device-width, initial-scale=1.0'>
        <meta http-equiv='X-UA-Compatible' content='ie=edge'>
        <title>ref获取DOM元素和组件的引用</title>
        <script src='../lib/vue.js'></script>
    </head>
    
    <body>
        <div id='app'>
            <input type="button" value="获取元素" @click="getElement" ref="mybtn">
            <h3 ref="myh3">哈哈哈哈哈</h3>
            <hr>
            <login ref="mylogin"></login>
        </div>
        
        <script>
            var login = {
                template: '<h1>登录组件</h1>',
                data() {
                    return {
                        msg: 'son msg'
                    }
                },
                methods: {
                    show() {
                        console.log('调用了子组件的方法')
                    }
                }
            }
            var vm = new Vue({
                el: '#app',
                data: {},
                methods: {
                    getElement() {
                        // ref 是英文单词 【reference】 值类型 和 引用类型 (referenceError 引用错误)
                        
                        console.log(this.$refs.myh3.innerText); //获取h3的文本内容
                        console.log(this.$refs.mylogin.msg); //调用子组件的数据
                        this.$refs.mylogin.show(); //调用子组件的方法
                    }
                },
                components: {
                    login: login
                }
            })
        </script>
    </body>
    
    </html>

    点击按钮,所得结果:

  • 相关阅读:
    Windows关于文件句柄数的限制
    python 的未来5-10年的就业方向
    想着给要做的软件起一个名儿~
    sql server 特殊sql
    字节序之大小端_Intelx86是小端_网络传输是大端
    维基百科Wikipedia镜像网站列表
    NodeJS开启GZIP功能
    SqlServer2008 跨服务器同步数据
    Asp.net中的ViewState用法
    JAVA Netty入门Demo实例代码(自写测试可用)实现客户端服务器端互传数据
  • 原文地址:https://www.cnblogs.com/ella-li/p/14702424.html
Copyright © 2011-2022 走看看