반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 스프링
- 리액트
- 정보처리기사
- 오라클
- 정보처리기사실기정리
- php
- 정보처리기사요약
- 자스코테
- 자바의정석
- 정보처리기사실기요약
- 정보처리기사정리
- 코딩테스트
- typescript
- VUE
- ReactNative
- 자바스크립트 코딩테스트
- 이안의평일코딩
- 국비IT
- spring
- 자바스크립트
- Oracle
- 정보처리기사실기
- 타입스크립트
- 리액트네이티브
- 평일코딩
- javascript
- CSS
- Java의정석
- react
- 국비코딩
Archives
- Today
- Total
이안의 평일코딩
[Vue] 더보기 버튼 기능 구현하기 (axios로 ajax 요청) 본문
반응형
ajax란?
GET 또는 POST 요청하면 브라우저가 새로고침하게 된다. ajax를 쓰면 새로고침 없이도 요청이 가능하다.
axios 설치
axios 라이브러리를 쓰든가 기본 fetch 함수를 쓰면 된다. fetch API는 브라우저 비교적 최신 기능이지만 호환성 문제때문에 axios를 이용한다. <script>에서 axios를 import 해온 뒤, axios.get(), axios.post()식으로 사용하면 된다.
npm install axios
yarn add axios
더보기 버튼 기능
만약 'https://데이터있는사이트'에 /more0.json, /more1.json... 식으로 데이터가 있다고 가정하자.
더보기 버튼을 누르면 axios로 json파일을 get해와서 .then 성공한다면 result의 data를
instaData 데이터안에 push해서 추가해주면 데이터가 추가되어 화면에 출력된다.
먼저, <script>에서 methods에 more()이라는 함수를 등록한 뒤 더보기 버튼에 @click="more"로 함수를 넣어준다.
그리고 data()에서 morePost를 기본값을 0으로 준 뒤 클릭할 때마다 1씩 추가되어 axios.get으로 more0, more1를 불러와서 push 추가시킨다.
<template>
<Container :instaData="instaData" />
<button @click="more">더보기</button>
</template>
<script>
import Container from './components/Container.vue';
import data from './assets/data';
import axios from 'axios';
export default {
name: 'App',
data(){
return {
instaData : data,
morePost : 0,
}
},
components: {
Container,
},
methods: {
more(){
axios.get(`https://데이터있는사이트/more${this.morePost}.json`)
.then(result=>{
this.instaData.push(result.data);
this.morePost++;
})
}
},
}
</script>
반응형
'Front-end > Vue' 카테고리의 다른 글
[Vue] 이미지 업로드 및 불러오기 (0) | 2021.05.14 |
---|---|
[Vue] 스크롤 시 헤더 색 변경 (0) | 2021.04.27 |
[Vue] 이미지 집어넣기 {backgroundImage : `url(${})`} (0) | 2021.04.19 |
[Vue] Vue의 기초(11) - URL 파라미터, Nested routes, router push (1) | 2021.04.16 |
[Vue] Vue의 기초(10) - Bootstrap (0) | 2021.04.14 |
Comments