echarts图表使用v-show控制图表显示不全的问题

        最近做echarts图表时,因为涉及到使用开关变量控制不同图表的显示隐藏,用 v-if 时会出现没有获取到dom结构而报错,所以改用 v-show,但是 v-show 本身是结构已经存在,当数据发生变化时,结构并未重新渲染,所以会出现 echarts 图表未获取到最外层大盒子的宽度而显示一半的情况,就像下图:

 

还折腾了半天,其实就是当数据请求出来后,调用绘制ehcarts时图表的时候,用 Vue.nextTick(function () { // DOM 更新了 }) 主动触发一下图表,使之强制渲染就可以正常显示了

 

正常显示图表:

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Echarts是一个优秀的数据可视化库,可以帮助开发者快速构建各种图表和数据展示的界面。在使用Echarts时,我们通常会用到v-show这个指令来控制图表显示和隐藏。 v-show是Vue.js框架中的一个指令,用于根据表达式的值来控制DOM元素的显示和隐藏。当表达式的值为真时,DOM元素会显示出来;当表达式的值为假时,DOM元素会隐藏起来。 在使用Echarts时,可以将图表所在的DOM元素与v-show指令结合使用,通过改变表达式的值来控制图表显示和隐藏。 例如,假设有一个按钮来控制图表显示和隐藏,通过点击按钮可以改变一个布尔类型的变量showChart的值。通过在图表所在的DOM元素上添加v-show指令,设置表达式为showChart,就可以实现根据showChart变量的值来显示或隐藏图表。 ``` <template> <div> <button @click="toggleChart">点击切换图表显示</button> <div v-show="showChart" id="chart"></div> </div> </template> <script> export default { data() { return { showChart: true, // 其他图表相关的配置 } }, methods: { toggleChart() { this.showChart = !this.showChart; }, // 其他方法和事件处理逻辑 }, mounted() { // 初始化Echarts图表 const chart = echarts.init(document.getElementById('chart')); // 图表的相关配置和数据处理逻辑 // ... } } </script> ``` 通过上述代码,可以实现点击按钮切换图表显示和隐藏效果。当showChart变量为真时,图表显示出来;当showChart变量为假时,图表会隐藏起来。 总结来说,使用v-show可以方便地控制Echarts图表显示和隐藏,提升了页面的交互性和用户体验。同时,结合Vue.js框架的特性,可以更加灵活地处理图表显示和隐藏逻辑。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值