vue中echarts实现自适应大小

6 篇文章 0 订阅

echarts要实现自适应大小,需要在页面发生大小改变的时候,对图表实例进行重绘。

在echarts里边,提供了一个重绘的方法:resize() 图表的实例对象调用该方法即可进行重绘。

然后还需要在vue的钩子函数mounted里边,定义一个window.resize()方法来监听页面发生变化。当页面发生变化时,就执行重绘的方法。

完整示例如下:

<template>
    <div class="echarts">
        <div id="echart"></div>
    </div>
</template>

<script>
import Echarts from 'echarts'
export default {
    data() {
        return{
            myChart: {}
        }
    },
    created() {
        this.$nextTick(()=> {
            this.loadEchart()
        })
    },
    mounted(){
        let _this = this;
        window.onresize = function() {
            _this.myChart.resize()
        }
    },
    methods: {
        loadEchart() {
            this.myChart = Echarts.init(document.getElementById("echart"));
            this.myChart.setOption({
                title: {
                    text: 'ECharts 示例'
                },
                tooltip: {},
                xAxis: {
                    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
                },
                yAxis: {},
                series: [{
                    name: '销量',
                    type: 'bar',
                    data: [5, 20, 36, 10, 10, 20]
                }]
            })
        }
    }
}
</script>

<style>
#echart {
    width: 50%;
    height: 300px;
}
</style>

效果图:

该示例的数据来自echarts官方,可以根据自己的实际需求来修改数据。原理都是一样的,希望能帮到有需要的人。如果有写的不对的地方也欢迎指出。

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue使用Echarts实现容器大小自适应有以下几种方法: 1. 使用`watch`监听容器大小变化,手动调用`resize`方法: ```javascript <template> <div ref="chart" style="height: 300px;"></div> </template> <script> import echarts from 'echarts' export default { data() { return { chart: null } }, mounted() { this.chart = echarts.init(this.$refs.chart) this.initChart() }, methods: { initChart() { // 初始化图表 }, resize() { this.chart.resize() } }, watch: { '$refs.chart': { immediate: true, handler() { window.addEventListener('resize', this.resize) } } }, beforeDestroy() { window.removeEventListener('resize', this.resize) } } </script> ``` 2. 使用`resize-detector`插件自动监听容器大小变化: ```javascript <template> <div ref="chart" style="height: 300px;"></div> </template> <script> import echarts from 'echarts' import resizeDetector from 'resize-detector' export default { data() { return { chart: null } }, mounted() { this.chart = echarts.init(this.$refs.chart) this.initChart() // 监听容器大小变化 resizeDetector.addResizeListener(this.$refs.chart, this.resize) }, methods: { initChart() { // 初始化图表 }, resize() { this.chart.resize() } }, beforeDestroy() { resizeDetector.removeResizeListener(this.$refs.chart, this.resize) } } </script> ``` 3. 使用`vue-echarts`组件库自动监听容器大小变化: ```javascript <template> <v-chart :options="options"></v-chart> </template> <script> import { VChart } from 'vue-echarts/components' import 'echarts/lib/chart/bar' // 引入图表类型 import 'echarts/lib/component/tooltip' // 引入图表组件 export default { components: { VChart }, data() { return { options: { // 图表配置 } } } } </script> ``` 以上几种方法均可以实现Echarts容器大小自适应,选择哪种方法取决于项目需求和个人喜好。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值