Vue使用ref 属性来获取DOM

摘要:
请注意,这可以在父组件$Refs中使用。属性名称获取任何元素的属性和方法。子组件无法获取˂!

注意,在父组件中可以使用this.$refs.属性名  获取任何元素的属性和方法,子组件不可以获取父组件中的

<!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>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div class="app">
        <input type="button" @click="show" value="点击">
        <!-- 设置元素ref 属性 -->
        <h1 ref="chuandi">中国是伟大的祖国</h1>
        <hr>
        <log ref="mylog"></log>
    </div>


    <template id="log">
        <div>
            <input type="button" value="获取元素" @click="comfunc">
            <h1>你说的很对啊</h1>
        </div>
    </template>


    <script>
        var vm=new Vue({
            el:'.app',
            data:{},
            methods: {
                show(){
                    // 获取ref属性为chuandi的内部文本
                    console.log(this.$refs.chuandi.innerText);    //获取到了h1 元素的文本
                    console.log(this.$refs.mylog.name);     //获取到了子组件的data属性
                    console.log(this.$refs.mylog.add);     //获取到了子组件的方法
                    
                }
            },

            components:{
                log:{
                    template:'#log',
                data(){
                    return{
                        name:'duwei'
                    }
                },
                methods: {
                    add(){

                        console.log('调用了子组件的方法');
                        
    
                    },
                    comfunc(){
                        console.log(this.$refs.chuandi.innerText);   //报错 innerText没有定义, 子组件不能通过ref 来获取父组件的属性方法
                        // 需要使用props
                        
                    }
                },
                }
               
            }
        })
    </script>
</body>
</html>

免责声明:文章转载自《Vue使用ref 属性来获取DOM》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知Maven--403权限问题解决方式(求解决)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

log4cpp 配置 与 使用

1. 基本概念 categories 日志的层级体系 appenders 日志打印到什么地方,可以是文件,也可以是终端 layouts 日志输出格式,定义类似于printf中的输出方式。有三种,后面都有例子,这三种分别是:basic,simple,pattern priority 日志的级别,所有的级别有:EMERG、FATAL、ALERT、CRIT、ER...

react 监听页面滚动

1. onScrollCapture html: // 如果使用typescript, 定义dom类型 private dom: HTMLDivElement | null // ReactJS中,对Div监听只需要绑定 onScrollCapture事件 <div style={{ flex: 1,...

uniapp、Vue组件的使用引用子组件、传值

1 //子组件 bar.vue 2 <template> 3 <div class="search-box"> 4 <div @click="say" :title="title" class="icon-dismiss"></div> 5 </div> 6 </...

原生js和vue之间的数据通讯--EventEmitter

有个小项目在原来原生的框架编写,但是不想写原生,就引入了vue 然后有个需求要和原生的js进行交互通讯,于是就可以用node.js EventEmitter 具体做法: 先引入文件<script src="http://t.zoukankan.com/js/eventEmitter.js"></script>, 初始化, 然后在vu...

使用vue ui命令创建vue项目步骤

1、前置环境 1、node.js 2、vue-cli 3、webstorm 2、创建步骤 1、在webstorm中打开一个终端,输入 #vue ui 运行结束后,会启动一个web服务用以可视化创建vue项目。 ![](https://img2018.cnblogs.com/blog/1522304/201907/1522304-2019070310170...

Asp.net 面向接口可扩展框架之数据处理模块及EntityFramework扩展和Dapper扩展(含干货)

接口数据处理模块是什么意思呢?实际上很简单,就是使用面向接口的思想和方式来做数据处理。 还提到EntityFramework和Dapper,EntityFramework和Dapper是.net环境下推崇最高的两种ORM工具。 1、EntityFramework是出自微软根正苗红的.net下的ORM工具,直接在Vs工具和Mvc框架中集成了,默认生成的项目就...