Vue中ref和$refs的介绍以及使用方法示例


Posted in Vue.js onJanuary 11, 2021

前言

在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后再获取这个节点的值。在Vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗。

ref介绍

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

通俗的讲,ref特性就是为元素或子组件赋予一个ID引用,通过this.$refs.refName来访问元素或子组件的实例

<p ref="p">Hello</p>
<children ref="children"></children>
this.$refs.p
this.$refs.children

this.$refs介绍

this.$refs是一个对象,持有当前组件中注册过 ref特性的所有 DOM 元素和子组件实例

注意: $refs只有在组件渲染完成后才填充,在初始渲染的时候不能访问它们,并且它是非响应式的,因此不能用它在模板中做数据绑定

注意:

当ref和v-for一起使用时,获取到的引用将会是一个数组,包含循环数组源

<template>
 <div>
 <div ref="myDiv" v-for="(item, index) in arr" :key="index">{{item}}</div>
 </div>
</template>
 
<script>
export default {
 data() {
 return {
  arr: ['one', 'two', 'three', 'four']
 }
 },
 mounted() {
 console.log(this.$refs.myDiv)
 },
 methods: {}
}
</script>
 
<style lang="sass" scoped>
 
</style>

Vue中ref和$refs的介绍以及使用方法示例

实例(通过ref特性调用子组件的方法)

【1】子组件code:

<template>
 <div>{{msg}}</div>
</template>
 
<script>
export default {
 data() {
 return {
  msg: '我是子组件'
 }
 },
 methods: {
 changeMsg() {
  this.msg = '变身'
 }
 }
}
</script>
 
<style lang="sass" scoped></style>

【2】父组件code:

<template>
 <div @click="parentMethod">
 <children ref="children"></children>
 </div>
</template>
 
<script>
import children from 'components/children.vue'
export default {
 components: { 
 children 
 },
 data() {
 return {}
 },
 methods: {
 parentMethod() {
  this.$refs.children //返回一个对象
  this.$refs.children.changeMsg() // 调用children的changeMsg方法
 }
 }
}
</script>
 
<style lang="sass" scoped></style>

总结

到此这篇关于Vue中ref和$refs的介绍以及使用的文章就介绍到这了,更多相关Vue中ref和$refs使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
vue中activated的用法
Jan 03 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
vue 组件基础知识总结
Jan 26 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
Vue的列表之渲染,排序,过滤详解
Feb 24 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
vue实现防抖的实例代码
Jan 11 #Vue.js
Vuex实现简单购物车
Jan 10 #Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 #Vue.js
基于vuex实现购物车功能
Jan 10 #Vue.js
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 #Vue.js
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 #Vue.js
vue编写简单的购物车功能
Jan 08 #Vue.js
You might like
PHP+DBM的同学录程序(5)
2006/10/09 PHP
smarty的保留变量问题
2008/10/23 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
jQuery使用手册之一
2007/03/24 Javascript
xml和web特殊字符
2009/04/28 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python编码爬坑指南(必看)
2016/06/10 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
减负增效提质方案
2014/05/23 职场文书
驻村工作先进事迹
2014/08/14 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
铅球加油稿100字
2014/09/26 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
python三子棋游戏
2022/05/04 Python