vue $refs.组件 找组件为{}

博主在使用Vue组件时遇到怪异现象,通过$parent.$refs引用组件时,只有在移除<scriptsetup>标签后才能正常操作。文章探讨了scriptsetup的使用限制及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到一个怪异的事情,前端给了一个VUE页面,里面有5个组件,点击左侧按钮,做隐藏显示。

let jcfw_cpdy = this.$parent.$refs.cpdy;
let jcfw_djcp = this.$parent.$refs.djcp;
let jcfw_fwtj = this.$parent.$refs.fwtj;
let jcfw_yjcp = this.$parent.$refs.yjcp;
let jcfw_znzz = this.$parent.$refs.znzz;

使用这种方式去改变组件的属性

jcfw_cpdy.cpdyshow = false
jcfw_djcp.djcpshow = false
jcfw_fwtj.fwtjshow = false
jcfw_yjcp.yjcpshow = false
jcfw_znzz.znzzshow = true

其他都正常唯独jcfw_cpdy,提示找不到,输出 this.$parent.$refs.cpdy 就是{}

看了很久,文件重建,改名,改注册名,都不行,只有来对比了。

发现这个页面引用的2个ele组件功能

<script setup>
    import { ElMessageBox, ElMessage } from 'element-plus';
</script>

把这个去掉,引用放到<script></script>,就正常了。

去vue看了下,没懂。。路过大神指点下

单文件组件 Vue.js - The 渐进式 JavaScript 框架https://v3.cn.vuejs.org/api/sfc-script-setup.html#%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值