【发布时间】:2020-12-20 14:16:51
【问题描述】:
我刚刚开始使用 VueJS,我正在尝试创建一个非常简单的页面,其中显示带有一些数据的饼图。
现在,我设法使用示例数据显示图表,但现在我想使用从后端 http://127.0.0.1:8000/user/getamount 上的 api 调用检索到的数据填充图表。
这是我的代码:
chart.js
import Vue from "vue/dist/vue.js";
import Vuex from "vuex";
import storePlugin from "./vuex/vuex_store_as_plugin";
import App from './App.vue'
import HighchartsVue from "highcharts-vue";
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(Vuex);
Vue.use(storePlugin);
Vue.config.productionTip = false;
Vue.use(HighchartsVue);
Vue.use(VueAxios, axios)
new Vue({
el: "#app",
render: h => h(App),
});
App.vue
<template>
<div>
<highcharts class="hc" :options="chartOptions" ref="chart"></highcharts>
</div>
</template>
<script>
export default {
data() {
return {
chartOptions: {
series: [{
type: 'pie',
name: 'Browser share',
data: [
['Firefox', 45.0],
['IE', 76.8],
['Safari', 8.5],
['Opera', 6.2],
['Others', 0.7]
]
}],
}
};
}
};
</script>
我刚刚开始使用 Vue,所以很多东西还不清楚,但是我应该在哪里执行 API 请求呢?我见过很多例子,其中 axios 用于调用 API 并在页面上显示数据,但在这种情况下,我需要组件上的数据,因为图表就在那里。我应该只执行来自组件的调用吗?还是我错过了什么?任何形式的建议表示赞赏
【问题讨论】:
-
在您的
data()旁边添加一个像mounted() {}这样的钩子以在其中进行 API 调用
标签: javascript vue.js highcharts vuejs2 vue-component