https://youtu.be/JAMOiluaUTc?si=5vP0LxOs-P9JkJAw
터미널
npm install axios

// board.js
//import를 이용해 axios 모듈 가져오기
import axios from 'axios';
// 서버의 기본주소
const BASE_URL = "https://jsonplaceholder.typicode.com/";
export default {
getArticle: function(id){
return axios.get(`${BASE_URL}posts/${id}`);
//axios에 get 메소드를 호출한 뒤 결과값을 리턴할 거임.
}
}
설명❗
서버는 미리 만들어진 서버 사용할 거임.
jsonplaceholder라는 가짜서버 사용
서버의 기본주소는 상수 BASE_URL에 부여함
getArticle: 서버에서 원하는 게시물의 데이터만 가져옴
https://jsonplaceholder.typicode.com/posts/1 은 JSON 형태임
파라미터 id를 이용해서 서버에서 원하는 게시물의 데이터(예: posts/1)만 가져옴

이제 getArticle 을 호출하고 결과값을 확인해 보자!

import 해주기.
화면이 나타나자마자 무엇인가 초기화하기 위해서는 mounted를 사용함.
created: vue 객체가 생성되자마자 실행됨
mounted: 생성된 이후 화면이 표시될 때 생성됨(가상돔에 해당 뷰가 장착되어 템플릿에 태그요소를 사용할 수 잇는 상태를 뜻함)
mounted(){
apiBoard.getArticle(1)
.then((response) =>{
//데이터를 성공적으로 가져왔을 때 실행
console.log(response)
})
.catch((e) =>{
//에러가 났을 때 실행
console.log(e)
});
}
호출 성공!
status가 200이면 성공이란 뜻~~
//board.js
getAricles: function(page){
console.log(page)
return axios.get(`${BASE_URL}posts`);
}
//app.vue
apiBoard.getAricles(0)
.then((response) => {
// 성공 시
console.log('getAricles', response)
})
.catch((e) => {
// 에러
console.log(e)
});


apiBoard.getAricles 실행 시 arrow function을 사용하는 이유:
arrow function의 this는 function과 달리 this를 스스로 정의하지 않고 외부에 있는 것을 사용하기 때문. 따라서 arrow function의 this는 vue객체를 의미하게 됨.
//app.vue
data(){// 데이터 보관통
return {
article: null,
}
},
mounted(){
//1초마다 1%씩 감소
setInterval(() => {
if(this.disCountNum !== 0){
this.disCountNum = this.disCountNum - 1;
}
}, 100)
apiBoard.getAricles(0)
.then((response) => {
// 성공 시
console.log('getAricles', response)
this.article = response.data
})
.catch((e) => {
// 에러
console.log(e)
});
},


불러오기 완료!!
근데 이런 식으로 타고 들어가려고 하니 문제가 생겼다... 이럴 땐 옵셔널체이닝 써 버리깃!!
(중간에 링크 바꿔서 위 서버랑은 타고 들어가는 게 다름. 무슨 서버 썼는지는 다음 글 확인)
아이고 잘 나온다
끝~ 😎