vue3 $refs使用方法

由于在vue3 setup中已经没有了this,所以this.$refs 自然是不能使用的,但是vue3 还给我们预留了一个api,那就是getCurrentInstance,我们可以通过声明定义的方式,替换this。

TypeScript 复制代码
<script setup>
import { getCurrentInstance } from 'vue'

const instance = getCurrentInstance()
const childRef = instance.ctx.$refs.bzhlcEcharts.initChart()

</script>

但是我这里主推的不是这种方法,因为这类写法在 Vue 3 里不稳定,尤其是在 <script setup> 里,ctx 也不是推荐用法。

最稳妥的方式是:用 ref 绑定子组件实例,然后直接 .value 调方法,也就是:

TypeScript 复制代码
<template>
    <lineChart ref="trendChart" class="chart-container"></lineChart >
</template>
<script setup lang="ts">
import { ref } from "vue"
import lineChart from './lineChart .vue'

const trendChart= ref<any>(null)
trendChart.value?.initChart();

</script>

效果:

相关推荐
啊阿狸不会拉杆6 小时前
《计算机网络-自顶向下方法》6.7 回顾:Web页面请求的历程 读书笔记
前端·计算机网络
李少兄6 小时前
记一次 IDEA 打开 Vue 项目后目录“闪现即消失“ 问题排查
java·vue.js·intellij-idea
云上工程笔记6 小时前
四柱记账法和复式记账法有什么区别?复式记账为什么更适合查错和对账
大数据·前端·人工智能
恋猫de小郭6 小时前
Dart Skills CLI 1.0 :AI 时代的 Dart 交付支持
android·前端·flutter
Hilaku6 小时前
为什么技术极强的前端,往往当不好前端 Team Leader?
前端·javascript·程序员
Knight_AL6 小时前
EasyExcel 导入模板踩坑:row.add(““)导致文本格式失效与单元格保护问题解决方案
java·前端·easyexcel
Csvn6 小时前
模板字面量类型:用类型做字符串的正则
前端
倾颜7 小时前
AI Chat 长会话性能实践:消息虚拟化、动态高度与流式滚动设计
前端·react.js·node.js
幸运小圣7 小时前
SSE 与 WebSocket 新手入门:前端实时通信完全指南【JavaScript】
前端·javascript·websocket
艾伦野鸽ggg7 小时前
25级开学 JS 考核题解
前端·javascript