VUE中 ref $refs 使用详解,扩展到$parent 、$children 的使用

$refs 的使用方法就是在元素或组件标签上添加ref属性指定一个引用信息,引用信息将会注册在父组件的$refs对象上,在js中使用$refs来指向DOM元素或组件实例;

 

应用一:在DOM元素上使用$refs可以迅速进行dom定位,类似于$("selectId"),如下

​
<template><div class="parent"><p ref="testTxt">{{oldMsg}}</p><button @click="changeMsg()">点击修改段落内容</button></div></template><script>export default {data(){return {oldMsg:'这是原有段落数据内容',newMsg:'hello,这是新的段落数据内容!!',}},methods:{changeMsg(){this.$refs.testTxt.innerHTML=this.newMsg;},}}</script>​

 

应用二:也能在组件上使用ref属性,可以通过$refs实现对子组件操作,如下

①使用this.$refs.paramsName能更快的获取操作子组件属性值或函数

parentone.vue 如下:

<template><div class="parent"><Childone ref="childItemId"></Childone><p style="color:blue;">{{msgFromChild}}</p><button @click="getChildMsg()">使用$refs获取子组件的数据</button></div>
</template><script>
import Childone from './childone'
export default {components:{Childone},data(){return {msgFromChild:'',}},methods:{getChildMsg(){this.msgFromChild=this.$refs.childItemId.childMsg;},}
}
</script>

childone.vue 如下:

<template><div class="child"></div>
</template><script>
export default {data(){return {childMsg:'这是子组件的参数'}}
}
</script>

 

扩展到$parent 、$children的使用:

②我们可以使用$children[i].paramsName 来获取某个子组件的属性值或函数,$children返回的是一个子组件数组

这里就只写父组件的代码了,parentone.vue如下:

<template><div class="parent"><Childone></Childone><Childtwo></Childtwo><p style="color:blue;">{{msgFromChild}}</p><button @click="getChildMsg()">使用$children来获取子组件的数据</button></div>
</template><script>
import Childone from './childone'
import Childtwo from './childtwo'
export default {components:{Childone,Childtwo},data(){return {msgFromChild:'',}},methods:{getChildMsg(){this.msgFromChild=this.$children[1].child2Msg;},}
}
</script>

 

③那么子组件怎么获取修改父组件的数据内容?这需要使用$parent

parentone.vue如下

<template><div class="parent"><Childone></Childone></div>
</template><script>
import Childone from './childone'
export default {components:{Childone},data(){return {parentMsg:'这是父组件的数据',}}
}
</script>

childone.vue如下:

<template><div class="child"><p style="color:red;">{{msgFromParent}}</p><button @click="getParentMsg()">点击使用$refs获取父组件的数据</button></div>
</template><script>
export default {data(){return {msgFromParent:''}},methods:{getParentMsg(){this.$parent.parentMsg="子组件中可以修改父组件的内容,这是通过子组件修改所得"this.msgFromParent=this.$parent.parentMsg;}}
}
</script>

 

注意:

· 当使用v-for的元素或组件,引用信息$refs将是包含DOM节点的或组件实例的数组,类似$children的使用;

· 注意 $refs不能在created生命周期中使用 因为在组件创建时候 该ref还没有绑定元素

      created(){//报错, $refs不能在created生命周期中使用 因为在组件创建时候 该ref还没有绑定元素this.changeMsg();  },methods:{changeMsg(){this.$refs.testTxt.innerHTML=this.newMsg;},}

· 它是非响应的,所以应该避免在模板或计算属性中使用 $refs ,它仅仅是一个直接操作子组件的应急方案;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设置搜狗浏览器为默认浏览器时被360拦截怎么办?

我们在上网时都习惯使用某一种浏览器&#xff0c;也希望打开网页时可以使用默认浏览器来打开&#xff0c;但在设置默认浏览器时可能会遇到一些问题&#xff0c;下面小编就来介绍一下解决方法。有很多用户喜欢使用搜狗浏览器为默认浏览器&#xff0c;但是用户在使用设置的时候会…

CSS文字或元素的水平垂直居中多种方式(简单明了)

前言&#xff1a;水平居中&#xff0c;我们可以很容易想到使用text-align实现文字水平居中&#xff0c;使用margin:0px auto;可以实现元素水平居中&#xff1b;所以重点将是怎么实现文字和元素的垂直居中&#xff1f;&#xff1f; --- 本文将通过举栗子说明各种解决方式&#x…

腾讯视频怎么设置下载视频位置

腾讯视频是当下人们普遍使用的影视娱乐工具&#xff0c;腾讯视频怎么设置下载视频位置呢&#xff0c;下面我为大家一一介绍 1、打开电脑 2、打开腾讯视频 3、点击右上角菜单 4、点击设置 5、如下图选择 6、点击应用 7、腾讯视频设置开机自动启动就成功了&#xff0c;赶紧…

Vue-cli 项目打包布署(简单清晰)

第一步&#xff1a;项目打包前更改项目config配置 打开项目的 config>index.js文件修改build对象的assetsPublicPath: 属性值为 ./ 如下 第二步&#xff1a;对vue-cli项目进行打包 在运行窗口输入cmd后打开命令窗口&#xff0c;在项目文件下输入npm run build命令 如下&…

PP视频怎么把输出声音设置成单声道输出

在使用PP视频看电影时&#xff0c;怎么把输出声音设置成单声道输出呢?下面小编就介绍下方法。 1、先安装PP视频安装&#xff0c;然后点击快捷键启动。 2、进入到主页后点击右上角的三角形图标。 3、我们点击窗口中的“设置”按钮。 4、点击新页面左侧的“高级”按钮。 5、…

Vue-cli项目中路由的基础用法,以及路由嵌套

文件目录&#xff1a; 编辑router文件夹下的index.js文件 第一步&#xff1a;引用vue和vue-router &#xff0c;Vue.use&#xff08;VueRouter&#xff09; /* eslint-disable*/ import Vue from vue import Router from vue-router Vue.use(Router) 第二步&#xff1a;引用…

电脑端腾讯视频如何设置离线下载完成后自动关机

小编今天更新“电脑端腾讯视频如何设置离线下载完成后自动关机”&#xff0c;1、点击主页面右上角的三条横杠 2、点击【设置】 3、点击左侧的【自动关机】 4、勾选【离线下载完成自动关机】 5、点击【应用】即可 腾讯视频最新电视剧推荐&#xff1a; 纪录片《诺斯伍兹&am…

Vue路由传参的几种方式

前言&#xff1a;顾名思义&#xff0c;vue路由传参是指嵌套路由时父路由向子路由传递参数&#xff0c;否则操作无效。传参方式可以划分为params传参和query传参&#xff0c;params传参又可以分为url中显示参数和不显示参数两种方式。具体区分和使用后续分析。 参考官网&#x…

腾讯视频如何缓存视频

本文小编给大家分享的是腾讯视频下载安装免费2020_腾讯视频如何缓存视频。腾讯视频看到喜欢的视频&#xff0c;想把视频缓存下来&#xff0c;那腾讯视频如何缓存视频呢? 具体该如何操作&#xff0c;下面小编来详细的讲解一下。 1、首先打开腾讯视频&#xff0c; 2、接着选择…

常用html字符的转义字符串(html代码),全部转义字符备用

转义字符串&#xff0c;即字符实体&#xff08;Character Entity&#xff09;分成三部分&#xff1a; 第一部分是一个&符号&#xff1b; 第二部分是实体&#xff08;Entity&#xff09;名字或者是#加上实体&#xff08;Entity&#xff09;编号&#xff1b; 第三部分是一个分…

PP视频如何开启允许非WI-FI下载

今天分享一下PP视频如何开启允许非WI-FI下载&#xff0c;在使用PP视频的时候&#xff0c;如有需要&#xff0c;我们可以开启允许非WI-FI下载&#xff0c;具体步骤请看下面的详细介绍。 1、打开PP视频&#xff0c;然后点击右下角的我的选项。 2、进入到我的界面后&#xff0c;…

单行文字、多行文字溢出时省略号表示的多种解决方式;调整字符间距;段落首字母大写缩进效果;

文本溢出省略号表示的实现效果&#xff1a; 1、解决单行文字溢出&#xff1a; 解决方式&#xff1a; 在文字容器样式中添加 overflow:hidden; text-overflow:ellipsis; white-space: nowrap; 其中overflow:hidden;是在超出元素宽度范围时候不使用滚动条&#xff0c;text-ove…

如何升级IE浏览器 电脑IE浏览器怎么升级

如何升级IE浏览器?升级IE浏览器有两种方法&#xff0c;其一便是在网络上下载另一个版本的IE浏览器安装即可&#xff0c;另外一种则是直接访问微软官网获取IE&#xff0c;但因为微软的服务器不在中国&#xff0c;访问速度可能会让你崩溃。 如何升级IE浏览器&#xff1f; 方法…

js遍历对象、遍历数组、js数组方法大全、区分map()和forEach()以及filter()、区分for...in...和for...of...

1、给对象添加属性&#xff1a;使用 object.prop 或object[prop] 给对象添加属性 let obj{};obj.name"zhangsan";obj["age"]23;obj["class"]"语文";console.log(obj); //输出&#xff1a;{name: "zhangsan", age: 23, cl…

老毛桃U盘快速装系统

第一步&#xff1a;准备工作 1、一个u盘&#xff08;大小在4G以上&#xff09;&#xff1b; 2、下载所需安装的win7、win8 系统ISO文件&#xff08;大小在4G左右&#xff0c;过小则说明IOS下载错误&#xff09;&#xff1b; 3、U盘爱动盘制作工具&#xff08;这里使用的是老…

禁止IE页面自动跳转到EDGE浏览器的方法教程

IE浏览器一直是我们最常用的浏览器&#xff0c;但是Windows系统在大力推广edge浏览器的时候强制原来的IE用户使用IE浏览器的时候直接跳转到edge浏览器。应该怎么禁止IE浏览器跳转edge浏览器呢?下面小编就带着大家一起学习一下吧! 设置步骤&#xff1a; 1、首先打开IE浏览器&…

Vuex使用详解,附加项目遇到的问题(简单明了)

Vuex的定义、个人理解和结构解析 vuex定义&#xff1a;vuex是一个专门为vue.js设计的集中式状态管理架构。 vuex的个人理解&#xff1a; 是存储公有状态数据state的一个仓库(store)&#xff1b;解决了大型应用时组件传参的繁杂和不易维护性&#xff1b;vuex的状态储存是响应的…

Chorme控制台console的用法;

前提&#xff1a;是谷歌浏览器&#xff01; IE8- 不支持console.log();会报错&#xff0c;解决如下&#xff1a; (function (){//创建空console对象&#xff0c;避免JS报错 if(!window.console) window.console {}; var console window.console; //添加console对象的方…

搜狗浏览器如何下载安装 安装搜狗浏览器的详细步骤

搜狗浏览器如何下载安装?搜狗浏览器是一款很不错的网页浏览软件&#xff0c;但是大家知道如何下载安装搜狗浏览器吗?不会的小伙伴就请跟着小编一起来看看安装搜狗浏览器的操作步骤吧。 方法/步骤 1、我们寻找搜狗浏览器官方版本&#xff0c;点击搜寻。 2、可以选择软件库下…

null、undefined、NaN区分解析和条件判定,以及在IF条件中的判定

NaN的理解和用法&#xff1a; NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值&#xff0c;来指示其不是数字值。 Number.NaN 是一个特殊值&#xff0c;说明某些算术运算&#xff08;如求负数的平方根&#xff09;的结果不是数…