Vue2: v-for 联合 ref 使用, 对应引用信息为数组

news/2024/11/13 14:07:21/文章来源:https://www.cnblogs.com/LinForest/p/18538811

MarkTime: 2024-06-03 00:21:47

LogTime: 2024-11-10 23:25:35


说明

  • 问题:

    • 调用ref引用的时候, 好奇获取的时候为什么 有的返回的是对象, 有的返回的是数组 (如下图)

  • 版本:

    • vue: 2.6.14

源码

<!--已经省略掉大部分代码 只保留结构为说明
-->
<template><div class="container" :class="{ flexable: true }"> <template v-slot:right><!-- 左右结构右侧tab配置 --><div class="r-tab" v-if="rPageList.length>0 "><el-tabs v-model="rSelectPageId" class="r-flex-tabs":style="{'width': rPageWidth}"><el-tab-pane v-for="(item, index) in rPageList" :key="index":label="item.title":name="item.id"><componentstyle="height: 100%;"v-show="rSelectPageId == item.id":ref="rTmplRefs.length!==0 && rTmplRefs[index]['ref']":is="item.pageComponent"></component></el-tab-pane></el-tabs></div></template></div>
</template><script>export default {name: "disposal-operation",date(){return {rPageList: [], // tab展示组件数组rTmplRefs: [], // 辅助 子组件嵌入refrSelectPageId: '', // 当前展示组件rPageWidth: '545px', // 右侧宽度}},methods: {},}
</script><style lang="scss" scoped>.container {position: relative;width: 100%;&.flexable{display: flex;align-items: stretch;}>.cont{position: relative;&+.cont{margin:0 0 0 15px;}}&.vertical{flex-direction: column;height: 100%;>.cont{width: 100%;&+.cont{margin: 15px 0 0 0;}}}&.base{>.cont{&+.cont{margin: 0}}}.r-tab  {height: 100%;width: 100%;padding-top: 10px;.r-flex-tabs {height: 100%;margin-left: 15px;}}}</style>
<external-component><disposal-operationref="disposalOperation"></disposal-operation> 
</external-component><!--1. this.$refs[this.tmplRefs['HANDLE']['ref']] 是由外部组件 external-component 发起的调用2. this.$refs[this.tmplRefs['HANDLE']['ref']] 实际上获取到的是 disposal-operation 这整个组件的对象this.$refs[this.tmplRefs['HANDLE']['ref']].$refs[cParam.to] 实际想要获取到的是 disposal-operation 里 el-tabs 下循环渲染的某个 component
-->

分析

this.$refs[this.tmplRefs['HANDLE']['ref']].$refs[cParam.to] 拆为两部分来看
     由控制台输出结果可以直观看出:
         this.$refs[this.tmplRefs['HANDLE']['ref']] 还是对象,
         跟上 .$refs[cParam.to] 之后就变成数组了.


查查Vue框架官网: 能查到这么一句话:

​     "当 v-for 用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组。"(Vue2-ref)

    ​ / "When ref is used together with v-for, the ref you get will be an array containing the child components mirroring the data source."(Vue2-Accessing Child Component Instances & Child Elements)


大概意思就是, v-for 联合 ref 使用, 再使用 this.$refs[component_instance_ref] 获取到的就是数组咯

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

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

相关文章

Debug: setTimeout 使用做定时器时的错误函数传递方式

MarkTime: 2024-05-24 10:41:26 LogTime: 2024-11-10 14:55:53首先复习 setTimeout(): 语法: let timeId = setTimeout(func|code, [delay_millisecond]) 说明: 延时器. 延迟delay_millisecond后, 执行参数1setInterval(): 语法: let timeId = setInterval(func|code, [delay_…

Debug: calc() 未生效 = 内嵌样式表达式需使用空格分隔

MarkTime: 2024-06-25 17:10 LogTime: 2024-11-09 13:58:02结论calc()内的表达式 需要使用 空格分隔符, 即 更正 calc(100%-100px-10px); => calc(100% - 100px - 10px); 即可源<!-- 原错误代码 --> <div class="layout-search" style="width: 100%…

[云研发]腾讯云cloudstudio使用教程-记录1

cloudstudio在vscode中新建终端,使用nvidia-smi查看显卡与gpu情况,可知当前使用的显卡是T4的,显存有15GTalk is cheap. Show me the code

rip

题目链接:rip。 IDA 打开附件,进入到 main 函数,反编译后如下。留意到存在 gets 函数,因此存在栈溢出漏洞,经过动态调试,确定在输入 0x17 个字符后,即可覆盖到返回地址。同时,留意到存在 fun 函数,如下。因此,直接将程序执行流劫持到 fun 函数,即可 GetShell(此处需…

test_your_nc

题目链接:test_your_nc。 打开附件,进入 main 函数,IDA 反编译如下。因此直接连接即可 GetShell。

【docker应用】从Docker(k8s)镜像或者容器里提取jar包

引言 在docker或者k8s上运行了第三方的应用,很多时候我们都想知道运行流程,一般都会docker或者k8s容器中获取jar包。 那么该如何把里面的jar包提取出来呢? 其实有两种方式,分别为: 从镜像信息获取 进入容器获取从镜像信息获取 首先,查看镜像: docker image ls |grep <…

充电桩普遍选用芯海CSE7761集成3路ADC的免校准单相计量芯片

CSE7761是一款单相多功能电能计量芯片,工作于 3.579MHz 时钟频率,其内部集成了 3 路 sigmadelta ADC、功率计算器、能量-频率转换器、一路 SPI 接口、一路 UART 接口。适用于充电桩、单相多功能电能表、智能插座、智能家电等应用.CSE7761 设计用于精确计算电压有效值、电流有…

喝个水也要整智能家居?

ChatGPT对文章的摘要 这篇博客讲述了作者在家庭日常用水管理方面的改进经历。由于家里用水量增多,作者不断优化解决方案,从最初用农夫山泉桶装水,到购买反渗透净水机,再到通过智能化手段 简化补水流程。过程中,作者不断提高设备自动化程度,最终实现了全自动化补水,并且详…

基于FPGA的256QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR

1.算法仿真效果 vivado2019.2仿真结果如下(完整代码运行后无水印):设置SNR=40db:将数据导入matlab,显示其星座图:设置SNR=32db:将数据导入matlab,显示其星座图:设置SNR=24db:将数据导入matlab,显示其星座图:系统RTL结构如下:仿真操作步骤可参考程序配套的操作视频…

产业园区,被逼急了

这几年传统的地产开发业务遇到了各种各样的困境,许多房企转而开始积极布局多元化业务,业内的“去地产化”运动也愈演愈烈。 在这个时代背景下,产业园开发运营赛道迎来了一波热度爆发,吸引着众多房企和其他多元化主体的参与。那么,在日益升高的关注度与参与度之下,产业地产…

寂寂冬夜

引言 没错,本文的标题是嘉然学姐最喜欢的动漫《白色相簿2》中的插曲。 今天,chino 的 XCPC 最后一站——杭州站也结束了。(又浪费一年) 于是姑且乱写一番,也算是留下自己虚度光阴的罪证。 第一站 CCPC 哈尔滨 第一站是 CCPC 哈尔滨站,周六中午和 CD, BE, Sakura, Chen_jr 吃…

2024年11月10日重装系统后安装的软件

激活 Win11 双击开始激活:点击开始:激活完成:IDEA 2024 资源来自考拉软件:https://www.rjctx.com/41804.html