Vue中ref的三种用法
序言
最近在开发Vue项目,发现了一个ref的使用场景:将父组件中的值传递给子组件并且调用子组件的方法。
- 获取dom元素
- 获取子组件中的data
- 调用子组件中的方法
1.获取dom元素
通过`this.$refs.name`获取dom元素
// HTML
<div ref="myref">123</div>// JS
let myDOM = this.$refs.myref;
console.log(myDOM); // <div data-v-4bf94fa0>123</div>
2.获取子组件中的data
// 子组件
<template><div>我是子组件</div>
</template><script>
export default {data() {return {name: "myhua"};}
};
</script>// 父组件<template><div id="app"><Son ref="myref"></Son></div>
</template><script>
import Son from "./components/son";
export default {mounted() {console.log(this.$refs.myref.name); //输出子组件data中的name的值:myhua},components: {Son}
};
</script>
3.调用子组件中的方法
// 子组件
<template><div>我是子组件</div>
</template><script>
export default {methods: {logName() {console.log("myhua!!");}}
};
</script>// 父组件<template><div id="app"><Son ref="myref"></Son></div>
</template><script>
import Son from "./components/son";
export default {mounted() {this.$refs.myref.logName();//子组件中的方法},components: {Son}
};
</script>
Vue中ref的三种用法相关推荐
- vue中$refs的三种用法
我们都知道,在vue2中获取DOM元素,可以直接在元素上绑定ref属性,然后获取到DOM元素的属性值,这种方法在vue3 中仍然可以使用,但也会有一些问题.下面就介绍$refs的三种用法: 1.vue ...
- Java中final的三种用法
在java中final的三种用法: 1. final成员变量 2. final函数 3. final类 final成员变量 当你在类中定义变量时,在其前面加上final关键字,那便是说这个变量一旦被初 ...
- C++中virtual的三种用法
virtual用法一 #include using namespace std; class A{ public:virtual void display(){ cout<<"A ...
- vue中template的三种写法
第一种(字符串模板写法):直接写在vue构造器里,这种写法比较直观,适用于html代码不多的场景,但是如果模板里html代码太多,不便于维护,不建议这么写. 第二种:直接写在template标签里,这 ...
- vue 中插槽的三种类型
vue中的slot主要分三种 :匿名插槽,具名插槽,作用域插槽 一,匿名插槽: 语法:<slot></slot> 1.没有为插槽指定名称 2.通过slot标签可以添加匿名插槽 ...
- Mybatis中foreach的三种用法
foreach一共有List,array,Map三种类型的使用场景. foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. item表示集合中每一个元素进行迭代时的别名, i ...
- mysql里collection_foreach中collection的三种用法
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...
- java中super的三种用法
java中super的用法 super只在子类中出现 super有三种用法 [1] super.xxx; xxx可以是类的属性. 例如super.name;即从子类中获取父类name属性的值 [2] ...
- C++中using的三种用法
1.导入命名空间 C++命名空间namespace的理解 使用C++在写不同的功能模块时,为了防止命名冲突,建议对模块取命名空间,这样在使用时就需要指定是哪个命名空间. 使用 using 导入命名空间 ...
- python中else的三种用法
python中else可以在判断语句.循环语句和异常处理中使用. 判断语句 if - else - a = 3 b = 2 if a > b:print("a大于b") el ...
最新文章
- 2020-11-11 C++函数后面加“:”的含义
- 学习笔记(十二)——虚拟机安装和pycharm远程连接Ubuntu
- java paint 怎么用_java如何使用paint方法画图
- eclipse tomcat jsp乱码
- iOS开发Drag and Drop简介
- pythonxml解析拿到控件坐标_Python解析xml中dom元素的方法
- openGauss 分区表索引
- 数据结构 3-1-2 共享栈
- Mysql 删除数据表的三种方式详解
- Android 实现全屏、无标题栏
- eclipse加载jdbc驱动(mysql)
- 餐饮点餐外卖小程序源码(外卖订餐系统源码)
- KataGo线程/权重/显卡
- Python实现人脸识别检测,对主播进行颜值排行
- 怎样查看主板支持服务器内存,怎么看主板和内存兼容-怎么查看主板对内存的支持情况 爱问知识人...
- windows蓝屏原因速查表(常见蓝屏原因与解决方法速查(适用于Windows 7/8/8.1/10/11))
- 餐饮店如何做活动吸引人
- R语言|4. 轻松绘制临床基线表Table 1 临床三线表绘制
- 马薇薇论阴天期盼太阳
- 在php输出字符串时执行html标签,把字符串作为PHP代码执行
热门文章
- 计算机方向键不能使用,电脑键盘中的数字按键不能用是什么原因?
- Excel学习日记:L30-制作甘特图
- 7-12 输出大写英文字母 (15 分)
- QQ微信支付宝三合一收款码原理及代码实现
- iOS证书(.p12)和描述文件(.mobileprovision)申请
- windows7系统取消护眼模式的方法
- 一文教会你使用 Neo4j 快速构建明星关系图谱
- Matlab 线性拟合 polyfit 结果不准/偏差很大
- MATLAB解决线性最小二乘拟合
- html5判断文字超过几行,判断文字数量超过2行 添加展开按钮 未超过两行则不显示按钮 溢出部分显示省略号...