【发布时间】:2019-04-04 02:29:25
【问题描述】:
我在 HTML 中有以下代码(使用 Vue JS 和 Bootstrap 编码):
<b-tabs card>
<b-tab title="Followers" :title-link-class="'tab-title-class'">
Page View graph here
</b-tab>
<b-tab title="Orders" :title-link-class="'tab-title-class'">
Order Numbers graph here
</b-tab>
<b-tab title="Sales" :title-link-class="'tab-title-class'">
<sales-analytics></sales-analytics>
</b-tab>
<b-tab title="Profit" :title-link-class="'tab-title-class'">
Earning graph here
</b-tab>
</b-tabs>
该卡片包含 4 个选项卡,其中一个标题为“销售”,<sales-analytics></sales-analytics> 是我创建的一个组件,用于使用 Vue-ApexCharts 库呈现图形。但是,选择选项卡时,图形不会自动呈现。它只能在我在 Chrome 上单击 F12 后运行,重新加载页面也不起作用。
我认为该组件应该只在选择选项卡后运行,而不是在加载站点时完全运行(因为当站点加载时未选择选项卡时,这会导致呈现问题)。有谁知道如何实现这个?或者解决这个问题的替代方法?
脚本部分的更多内容:
<script>
import Sales from '../analytics/Sales'
export default {
components: {
'sales-analytics': Sales
}
</script>
编辑: 经过一番谷歌搜索,我发现了这个:https://github.com/apertureless/vue-chartjs/issues/157 这与我的情况有非常相似的行为,我想在选择选项卡后 v-if 并安装以加载组件。有人知道怎么做吗?
【问题讨论】:
-
在页面加载时渲染组件不是问题,因为 Vue-ApexCharts 在隐藏在引导选项卡中时需要重新绘制图形。有很多这样的例子,有几十个图表库。
-
感谢您的评论。知道如何在选择选项卡后强制 ApexCharts 重绘吗?
标签: javascript vue.js tabs bootstrap-vue apexcharts