gpt4 book ai didi

javascript - 如何在 Vue.js 库中使用 Google Charts?

转载 作者:行者123 更新时间:2023-12-04 16:26:42 24 4
gpt4 key购买 nike

我正在尝试使用 Vue.js 库使用 Google Charts 制作图表,但我不知道如何添加到 div。

这是我尝试做的,这是如何使用 Vanilla javascript ( Here the code example of the documentation ) 添加图表,我尝试适应 vue,但没有发生任何事情:

google.charts.load('current', {'packages': ['corechart']});

Vue.component('line-char', {
data: function(){
// Create the data table.
var data = google.visualization.arrayToDataTable([
['Tiempo', 'Temperatura'],
[1, 1000],
[2, 1170],
[3, 660],
[4, 1030]
]);

// Set chart options
var options = {
'title': 'Data Line',
'width': '100%',
'height': 250,
legend: { position: 'bottom' }
};

// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
},
template: '<div v-model="chart_div"></div>'
});

html:

<div id="component">
<line-chart></line-chart>
</div>

最佳答案

您要做的是使用 ref为您的<div>然后注册回调以在组件的 mounted 中绘制图表钩子(Hook)。

// Load library
google.charts.load('current', {'packages':['corechart']})

const lineChartOptions = {
title: 'Data Line',
width: '100%',
height: 250,
legend: { position: 'bottom' }
}

Vue.component('LineChart', {
template: `<div ref="chart"></div>`, // 👈 set ref here
data: () => ({
headings: ['Tiempo', 'Temperatura'],
chartData: [
[1, 1000],
[2, 1170],
[3, 660],
[4, 1030]
]
}),
methods: {
drawChart () {
const dataTable = google.visualization.arrayToDataTable([
this.headings,
...this.chartData
], false) // 👈 don't forget "false" here to indicate the first row as labels

const chart = new google.visualization.LineChart(this.$refs.chart) // 👈 use ref here
chart.draw(dataTable, lineChartOptions)
}
}
mounted () {
// set the library loaded callback here
google.charts.setOnLoadCallback(() => this.drawChart())
}
})

Matt 所述, 如果你的组件的模板真的是空的,除了一个 <div> ,您可以使用 $el属性来挂载图表而无需打扰 refs

Vue.component('LineChart', {
template: `<div></div>`,
// ...
methods: {
drawChart () {
// ...
const chart = new google.visualization.LineChart(this.$el)
chart.draw(this.dataTable, options)
}
}
})

关于javascript - 如何在 Vue.js 库中使用 Google Charts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62565850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com