序言

最近在开发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的三种用法相关推荐

  1. vue中$refs的三种用法

    我们都知道,在vue2中获取DOM元素,可以直接在元素上绑定ref属性,然后获取到DOM元素的属性值,这种方法在vue3 中仍然可以使用,但也会有一些问题.下面就介绍$refs的三种用法: 1.vue ...

  2. Java中final的三种用法

    在java中final的三种用法: 1. final成员变量 2. final函数 3. final类 final成员变量 当你在类中定义变量时,在其前面加上final关键字,那便是说这个变量一旦被初 ...

  3. C++中virtual的三种用法

    virtual用法一 #include using namespace std; class A{ public:virtual void display(){ cout<<"A ...

  4. vue中template的三种写法

    第一种(字符串模板写法):直接写在vue构造器里,这种写法比较直观,适用于html代码不多的场景,但是如果模板里html代码太多,不便于维护,不建议这么写. 第二种:直接写在template标签里,这 ...

  5. vue 中插槽的三种类型

    vue中的slot主要分三种 :匿名插槽,具名插槽,作用域插槽 一,匿名插槽: 语法:<slot></slot> 1.没有为插槽指定名称 2.通过slot标签可以添加匿名插槽 ...

  6. Mybatis中foreach的三种用法

    foreach一共有List,array,Map三种类型的使用场景. foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. item表示集合中每一个元素进行迭代时的别名, i ...

  7. mysql里collection_foreach中collection的三种用法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...

  8. java中super的三种用法

    java中super的用法 super只在子类中出现 super有三种用法 [1] super.xxx; xxx可以是类的属性. 例如super.name;即从子类中获取父类name属性的值 [2] ...

  9. C++中using的三种用法

    1.导入命名空间 C++命名空间namespace的理解 使用C++在写不同的功能模块时,为了防止命名冲突,建议对模块取命名空间,这样在使用时就需要指定是哪个命名空间. 使用 using 导入命名空间 ...

  10. python中else的三种用法

    python中else可以在判断语句.循环语句和异常处理中使用. 判断语句 if - else - a = 3 b = 2 if a > b:print("a大于b") el ...

最新文章

  1. 2020-11-11 C++函数后面加“:”的含义
  2. 学习笔记(十二)——虚拟机安装和pycharm远程连接Ubuntu
  3. java paint 怎么用_java如何使用paint方法画图
  4. eclipse tomcat jsp乱码
  5. iOS开发Drag and Drop简介
  6. pythonxml解析拿到控件坐标_Python解析xml中dom元素的方法
  7. openGauss 分区表索引
  8. 数据结构 3-1-2 共享栈
  9. Mysql 删除数据表的三种方式详解
  10. Android 实现全屏、无标题栏
  11. eclipse加载jdbc驱动(mysql)
  12. 餐饮点餐外卖小程序源码(外卖订餐系统源码)
  13. KataGo线程/权重/显卡
  14. Python实现人脸识别检测,对主播进行颜值排行
  15. 怎样查看主板支持服务器内存,怎么看主板和内存兼容-怎么查看主板对内存的支持情况 爱问知识人...
  16. windows蓝屏原因速查表(常见蓝屏原因与解决方法速查(适用于Windows 7/8/8.1/10/11))
  17. 餐饮店如何做活动吸引人
  18. R语言|4. 轻松绘制临床基线表Table 1 临床三线表绘制
  19. 马薇薇论阴天期盼太阳
  20. 在php输出字符串时执行html标签,把字符串作为PHP代码执行

热门文章

  1. 计算机方向键不能使用,电脑键盘中的数字按键不能用是什么原因?
  2. Excel学习日记:L30-制作甘特图
  3. 7-12 输出大写英文字母 (15 分)
  4. QQ微信支付宝三合一收款码原理及代码实现
  5. iOS证书(.p12)和描述文件(.mobileprovision)申请
  6. windows7系统取消护眼模式的方法
  7. 一文教会你使用 Neo4j 快速构建明星关系图谱
  8. Matlab 线性拟合 polyfit 结果不准/偏差很大
  9. MATLAB解决线性最小二乘拟合
  10. html5判断文字超过几行,判断文字数量超过2行 添加展开按钮 未超过两行则不显示按钮 溢出部分显示省略号...