这个怎么做? 2023-03-16 10:04 采纳率: 47.3%
浏览 16

关于#Echarts##Vue#的问题,如何解决?

Echarts && Vue3 图表初始化,要在OnMounted 获取dom节点,但如果如此做,节点可以获取到,图表可以渲染
但有一个问题,每次保存代码,OnMounted渲染的代码都是不显示的,只有刷新一下页面,才会渲染出来
模块化可以显示,我这个是先统一初始化图标,就不显示,每次都要刷新一下
👇dom结构

img

👇js结构,写了一个hook,获取dom,使用forEach将子节点 .chart 传入ChartOperate.AxisChart 对图表初始化

img

👇hook 只是给图表设置了个标题

img

👇保存代码时

img

👇刷新页面

img

  • 写回答

2条回答 默认 最新

  • MarkHan_ 2023-03-16 10:18
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    从您提供的信息来看,可能是因为每次保存代码后,页面没有重新渲染,导致图表没有重新初始化。您可以尝试在保存代码后手动刷新页面,或者在Vue中使用watch来监听数据的变化,并在变化时重新初始化图表。

    具体实现方法如下:

    1.在Vue组件中使用watch监听数据的变化:

    watch: {
      // 监听数据变化
      data () {
        // 数据变化时重新初始化图表
        this.initChart()
      }
    },
    
    
    

    2.在mounted生命周期钩子函数中初始化图表,并将初始化后的图表实例存储在Vue实例的数据中:

    mounted () {
      // 初始化图表
      this.initChart()
    
      // 存储图表实例
      this.chartInstance = echarts.getInstanceByDom(this.$refs.chart)
    },
    
    methods: {
      initChart () {
        // 获取图表DOM节点
        const chartDom = this.$refs.chart
    
        // 初始化图表
        const myChart = echarts.init(chartDom)
    
        // 设置图表配置项
        const option = {
          // ...
        }
    
        // 渲染图表
        myChart.setOption(option)
      }
    },
    
    
    

    3.在保存代码后,手动刷新页面,或者更新Vue组件的数据以触发watch的回调函数重新初始化图表。

    希望这能够解决您的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月16日

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路