vue Echarts 图表 初次加载未显示全部(宽度未撑满容器)

1.解决之前效果图

2.解决之后效果图

 

统计图配置代码展示

myEchart() {
      let httjChart = echarts.init(document.getElementById('httjchart'));
      let option = {
          xAxis: {
            type: 'category',
            data: this.xData
          },
          yAxis: {
            type: 'value',
            name: this.radio === '金额' ? '元' : '个'
          },
          grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
          },
          tooltip: {
            trigger: 'axis',
            axisPointer: {
              type: 'shadow'
            }
          },
          series: this.seriesData
        };
      httjChart.setOption(option);
      window.addEventListener('resize', function () {
        httjChart.resize();
      });
    }

 未解决之前代码

mounted() {
    this.myEchart();
  }

解决之后代码

mounted() {
  this.$nextTick(() => {
    this.myEchart();
  })
}

Vue项目中,使用echarts图表组件时遇到图表重复加载和axis重复多次请求的问题可以通过以下方式解决: 1. 图表重复加载问题:通常是因为在Vue组件的生命周期钩子函数中重复渲染图表组件导致的。可以通过在Vue组件的`mounted`生命周期钩子函数中进行判断,只有在第一次加载组件时才渲染图表。可以使用一个标志位来判断是否已经加载图表,例如: ```javascript mounted() { if (!this.chartLoaded) { // 进行图表渲染的操作 this.chartLoaded = true; } } ``` 2. axis重复多次请求问题:通常是因为在每次刷新数据时都重新请求了axis的数据导致的。可以通过将axis的数据保存在Vue组件的数据属性中,并在刷新数据时对应更新这些数据,而不是重新请求。例如: ```javascript data() { return { axisData: [], // 保存axis的数据 // 其他数据属性 } }, methods: { fetchData() { // 请求数据的操作 axios.get('axisDataUrl') .then(response => { this.axisData = response.data; // 更新axis的数据 // 其他数据请求和刷新操作 }) } }, mounted() { this.fetchData(); // 第一次加载数据 }, watch: { // 监听数据变化,如果需要刷新数据时也更新axis的数据 // 如:当某个选项改变时需要重新请求数据并刷新图表 options: { handler(newOptions) { // 其他数据刷新的操作 this.fetchData(); // 更新axis的数据 }, deep: true } } ``` 通过以上方式可以解决Vue项目中echarts图表重复加载和axis重复多次请求的问题,提高页面的性能和用户体验。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值