VUE-this.$refs返回值的数据格式场景

一、使用场景

父组件为了调用子组件中的方法;使用ref占位实现;

二、问题描述

在父组件中引用select-multiple、message两个组件;并且打印$ref

...

//DOM
<div class="shopInfoTeam" v-for="item in shopBaseItem">
  <label v-text="item.label" class="shopBaseLabel"></label>
  <select-multiple ref="SeletctInterface"></select-multiple>
</div>
<message ref="MessageBox"></message>
...
//调用处
methods:{
    /*初始化面板*/
    initPanel(){
         let _this = this;
         console.log(_this.$refs.MessageBox)
         console.log(_this.$refs.SeletctInterface);
         
     }
}
...

打印截图:

可以发现,一个$refs返回的数据类型是对象,一个$refs返回的数据类型是数组;

三、原因:

因为如果ref本身的dom或者父级dom有通过v-for = "i in items"时渲染dom的场景时,则vue框架会将refInFor设置成true
然后ref.key在registerRef函数就被设置成了数组;
(相关vue框架中的方法、属性:registerRef()、processRef、checkInFor以及refInFor)

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值