关键词搜索

源码搜索 ×
×

前端笔记-使用vue绑定id使得组件更加灵活(在使用echarts时常用)

发布2019-08-08浏览6417次

详情内容

目录

 

 

基本概念

代码与实例


 

基本概念

这个问题是在我使用echarts时出现的,因为echarts有这样的一个函数(官方实例)

let myChart = this.$echarts.init(document.getElementById(this.idStr));

这样的画就需要div的id号,为了使得这个id比较灵活,可以使用vue的绑定:id或者v-bind

这里要注意vue中的template要设置成如下:

  1. <template>
  2. <div style="width: 500px; height:300px"></div>
  3. </template>

因为在调用这个组件的时候,v-bind的是他template下第一层div。

绑定层如下:

这里还要绑定一个idStr,因为在调用的使用是得到id名

下面来看看浏览器的结果:

 

代码与实例

这里给出关键代码:

绑定层:

  1. <template>
  2. <div>
  3. <div class="ui container">
  4. <PieGraph
  5. :dataValue="dataValue"
  6. :titleValue="titleValue"
  7. :idStr="pieGraph1"
  8. :id="pieGraph1"
  9. />
  10. </div>
  11. </div>
  12. </template>
  13. <script>
  14. import PieGraph from '../../echarts/PieGraph'
  15. export default {
  16. data(){
  17. return{
  18. pieGraph1: "HelloWorld"
  19. }
  20. },
  21. components: {
  22. PieGraph
  23. }
  24. }
  25. </script>

echarts层所属的组件:

  1. <template>
  2. <div style="width: 500px; height:300px"></div>
  3. </template>
  4. <script>
  5. export default {
  6. props: {
  7. idStr:{
  8. type: "",
  9. required: true
  10. }
  11. },
  12. mounted(){
  13. this.drawLine();
  14. },
  15. methods: {
  16. //开始画图了
  17. drawLine(){
  18. // 基于准备好的dom,初始化echarts实例
  19. let myChart = this.$echarts.init(document.getElementById(this.idStr));
  20. // 指定图表的配置项和数据
  21. let option = {
  22. tooltip: {
  23. trigger: 'item',
  24. formatter: "{a} <br/>{b}: {c} ({d}%)"
  25. },
  26. legend: {
  27. orient: 'vertical',
  28. x: 'left',
  29. data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
  30. },
  31. series: [
  32. {
  33. name:'访问来源',
  34. type:'pie',
  35. radius: ['50%', '70%'],
  36. avoidLabelOverlap: false,
  37. label: {
  38. normal: {
  39. show: false,
  40. position: 'center'
  41. },
  42. emphasis: {
  43. show: true,
  44. textStyle: {
  45. fontSize: '30',
  46. fontWeight: 'bold'
  47. }
  48. }
  49. },
  50. labelLine: {
  51. normal: {
  52. show: false
  53. }
  54. },
  55. data:[
  56. {value:335, name: '直接访问'},
  57. {value:310, name:'邮件营销'},
  58. {value:234, name:'联盟广告'},
  59. {value:135, name:'视频广告'},
  60. {value:1548, name:'搜索引擎'}
  61. ]
  62. }
  63. ]
  64. };
  65. // 使用刚指定的配置项和数据显示图表。
  66. myChart.setOption(option);
  67. }
  68. }
  69. }
  70. </script>

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载