前端笔记-使用vue绑定id使得组件更加灵活(在使用echarts时常用)
目录基本概念代码与实例基本概念这个问题是在我使用echarts时出现的,因为echarts有这样的一个函数(官方实例)let myChart = this.$echarts.init(document.getElementById(this.idStr));这样的画就需要div的id号,为了使得这个id比较灵活,可以使用vue的绑定:id或者v-bind...
·
目录
基本概念
这个问题是在我使用echarts时出现的,因为echarts有这样的一个函数(官方实例)
let myChart = this.$echarts.init(document.getElementById(this.idStr));
这样的画就需要div的id号,为了使得这个id比较灵活,可以使用vue的绑定:id或者v-bind
这里要注意vue中的template要设置成如下:
<template>
<div style="width: 500px; height:300px"></div>
</template>
因为在调用这个组件的时候,v-bind的是他template下第一层div。
绑定层如下:
这里还要绑定一个idStr,因为在调用的使用是得到id名
下面来看看浏览器的结果:
代码与实例
这里给出关键代码:
绑定层:
<template>
<div>
<div class="ui container">
<PieGraph
:dataValue="dataValue"
:titleValue="titleValue"
:idStr="pieGraph1"
:id="pieGraph1"
/>
</div>
</div>
</template>
<script>
import PieGraph from '../../echarts/PieGraph'
export default {
data(){
return{
pieGraph1: "HelloWorld"
}
},
components: {
PieGraph
}
}
</script>
echarts层所属的组件:
<template>
<div style="width: 500px; height:300px"></div>
</template>
<script>
export default {
props: {
idStr:{
type: "",
required: true
}
},
mounted(){
this.drawLine();
},
methods: {
//开始画图了
drawLine(){
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById(this.idStr));
// 指定图表的配置项和数据
let option = {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
},
series: [
{
name:'访问来源',
type:'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data:[
{value:335, name: '直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
}
}
</script>
更多推荐
已为社区贡献33条内容
所有评论(0)