问题的出现
使用echarts、vue-echarts库开发一个简单的仪表盘应用,采用按需引入的方式
代码如下:
<script setup> import {basic_gauge_option} from '../data/gauge'; import {titlecomponent, tooltipcomponent} from 'echarts/components'; import { gaugechart } from 'echarts/charts'; import { use } from 'echarts/core'; import vexample from './example.vue'; import vchart from 'vue-echarts'; import { shallowref } from 'vue'; use([gaugechart, titlecomponent, tooltipcomponent]) const option = shallowref(basic_gauge_option) </script> <template> <v-example title="仪表盘示例" id="gauge-example" desc="仪表盘使用样例"> <v-chart :option="option" autoresize> </v-chart> </v-example> </template>
运行时浏览器报
uncaught error: renderer 'undefined' is not imported. please import it first. 错误:
问题解决
通过错误提示我们可知,图表欠缺了渲染器,根据echarts官方文档(我引用的是5.5.0版本),需要加上渲染器,并在程序中引入
修改后代码如下:
<script setup> import {basic_gauge_option} from '../data/gauge'; import {titlecomponent, tooltipcomponent} from 'echarts/components'; // 注意,新的接口中默认不再包含 canvas 渲染器,需要显示引入,如果需要使用 svg 渲染模式则使用 svgrenderer // 引入canvas渲染器或svg渲染器是必须的一步 import { canvasrenderer }from 'echarts/renderers'; import { gaugechart } from 'echarts/charts'; import { use } from 'echarts/core'; import vexample from './example.vue'; import vchart from 'vue-echarts'; import { shallowref } from 'vue'; use([gaugechart, titlecomponent, tooltipcomponent, canvasrenderer]) const option = shallowref(basic_gauge_option) </script> <template> <v-example title="仪表盘示例" id="gauge-example" desc="仪表盘使用样例"> <v-chart :option="option" autoresize> </v-chart> </v-example> </template>
效果如下:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论