Axios 및 Chart.js를 사용하여 Vue에서 데이터 가져오기 및 시각화
소개
우선, 이것은 나의 첫 번째 기사가 될 것입니다 :), 많은 지원과 저를 따르십시오.
나는 내 자신의 COVID19Tracker를 만들고 API라는 것을 발견했습니다. API에 대한 빠른 소개:
시작하기
이것은 내 파일 구조였습니다.
D:.
└───components
├───Body
├───DataGathering
├───Footer
├───Header
├───HomePage
│ ├───assets
│ └───Breads
├───Maps
└───Visuals
저는 Axios와 Chart.js 작업에만 집중할 것입니다.
axios 및 chart.js를 설치하려면:
npm install chart.js --save
npm install axios
사용하려면:
import Chart from 'chart.js';
const axios = require("axios");
데이터 가져오기
Body/Cases.vue에 Cases.vue라는 구성 요소를 만듭니다.
<template>
<div>
<br>
<br>
<div>
<CaseBread></CaseBread>
<hr/>
<br>
<h2>Cases</h2>
<CasesLine
:label="labels"
:chart-data="confirmed"
></CasesLine>
<br>
<br>
<CasesBar
:label="labels"
:chart-data="confirmed"
></CasesBar>
<br>
<br>
</div>
</div>
</template>
<script>
const axios=require("axios")
import CasesBar from '@/components/Visuals/CasesBar'
import CasesLine from '@/components/Visuals/CasesLine'
import CaseBread from '@/components/HomePage/Breads/CaseBread'
export default {
data : ()=> {
return {
labels : [],
confirmed : [],
}
},
components : {
CasesLine,
CasesBar,
CaseBread
},
async created() {
const { data } = await axios.get("https://covid19.mathdro.id/api/confirmed");
var c=0
for(var i=0;i<1000;i++){
if(data[i].countryRegion=="India"){
if (data[i].provinceState in this.labels){
continue
}
else{
this.labels.push(data[i].provinceState)
this.confirmed.push(data[i].confirmed)
c=c+1
if(c==28){
break
}
}
}
}
console.log(this.labels)
}
}
</script>
메모:
이를 복사하는 동안 CasesBread 및 모든 관련 요소를 제거하십시오.
그래서 무엇을합니까?
vue에서 "created"라고 하는 비동기 수명 주기 메서드에서 API에서 데이터를 가져옵니다.
https://covid19.mathdro.id/api/confirmed
CasesLine 및 CasesBar 구성 요소에 전달합니다. 이 두 구성 요소는 레이블과 차트라는 두 개의 소품을 사용합니다. Label은 가져온 상태 이름과 해당 사례를 포함하는 배열이고 차트는 각 상태에서 해당 사례를 포함하는 배열입니다.
API를 가져오려면 다음을 사용하세요.
axios.get("YOUR_API");
차트 만들기
여기서는 두 가지 유형의 차트에 대해 설명합니다.
라인 차트
꺾은선형 차트를 만들려면 Visuals/CasesLine.vue에 CasesLine.vue라는 파일을 만듭니다.
<template>
<canvas ref="myChart" width="900px" height="250px"></canvas>
</template>
<script>
import Chart from 'chart.js';
export default {
props: {
label: {
type: Array
},
chartData: {
type: Array
},
},
aysnc mounted() {
await new Chart(this.$refs.myChart, {
type: 'line',
data: {
labels: this.label,
datasets: [
{
label: 'CASES',
borderColor: 'rgba(245, 229, 27, 1)',
backgroundColor: 'rgba(255, 236, 139,0.2)',
data: this.chartData,
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
}
}
</script>
절차:
결과:
막대 차트
막대 차트를 만들려면 Visuals/CasesBar.vue에 CasesBar.vue라는 파일을 만듭니다.
<template>
<canvas ref="myChart" width="900px" height="250px"></canvas>
</template>
<script>
import Chart from 'chart.js';
export default {
props: {
label: {
type: Array
},
chartData: {
type: Array
}
},
async mounted() {
await new Chart(this.$refs.myChart, {
type: 'bar',
data: {
labels: this.label,
datasets: [
{
label: 'CASES',
backgroundColor: 'rgba(144,238,144 , 0.9 )',
data: this.chartData,
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
}
}
</script>
절차:
결과:
그게 끝이야
Reference
이 문제에 관하여(Axios 및 Chart.js를 사용하여 Vue에서 데이터 가져오기 및 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/23subbhashit/fetching-and-visualizing-data-in-vue-using-axios-and-chart-js-k2h
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Axios 및 Chart.js를 사용하여 Vue에서 데이터 가져오기 및 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/23subbhashit/fetching-and-visualizing-data-in-vue-using-axios-and-chart-js-k2h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)