vue+echarts 父子组件传值及同页面使用一个组件绘制多个图表的案例(按需引入)
最终的效果图,还需要做一些视觉效果,只需要在子组件里面编写就可以
子组件内容
v-bind:id就是绑定id,从父组件获得不同的id,不然id相同echarts画图时无法识别图表就显示不出来。ref绑定data用于同一个页面可以重复调用子组件,以便获得不同的data。
<!-- 子组件.vue -->
<template>
<div class="echarts">
<!-- 子组件需要得到的值id和data-->
<div v-bind:id=id ref="data" :style="{width: '100%', height: '338px'}" ></div>
</div>
</template>
按需引入必需组件
<!-- 子组件.vue -->
// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入折线图组件
require('echarts/lib/chart/line')
// 引入提示框和title组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
require('echarts/lib/component/legend')
<!-- 子组件.vue -->
props:["id","data"], // 接收从父组件传回的值
//实时监听父组件传过来的值
//然后执行drawLine方法 重新绘制折线图
watch: {
data: {
handler(value) {
this.drawLine(value)
},
deep: true//深度监听
}
},
mounted() {
this.drawLine(this.data