일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MariaDB
- mybatis
- jdbc
- JAXBContext
- swipe 배너
- 구멍가게코딩단
- java
- NoSQL
- JSON
- 기출문제
- Ajax
- 오라클
- JQuery
- jsp
- bulkinsert
- mysql
- vue.js
- Tomcat
- vscode tutorial
- egov
- github
- INSERT
- spring
- 마스킹
- query
- vue Carousel
- 정보처리산업기사
- 부스트코스
- insertAll
- checkbox
- Today
- Total
개발새발
[vue.js] 무제한 스크롤 (infiniteHandler) 본문
1. npm 설치
npm install vue-infinite-loading -S
2. <script>에 모듈 import
import InfiniteLoading from 'vue-infinite-loading';
3. export default 안에 components 추가
components: {
InfiniteLoading
},
4. 초기값 설정
data: () => {
return {
contents: [],
startNo: 1
}
},
5. html에 infinite 태그 추가
<infinite-loading @infinite="infiniteHandler" spinner="waveDots">
<div slot="no-more" style="color: rgb(102, 102, 102); font-size: 14px; padding: 10px 0px;">NO MORE</div>
</infinite-loading>
* spinner = 본인이 원하는대로 변경 가능
6. methods 안 infiniteHandler 추가
infiniteHandler($state) {
axios
.get("데이터 가져올 API URL", {
params: {
"넘길 파라미터": "파라미터",
"category": "001"
}
}).then(({data}) => {
setTimeout(() => {
if (data.length) {
this.startNo += 20;
this.contents = this.contents.concat(data);
console.log("after", this.contents.length, this.startNo);
$state.loaded();
} else {
$state.complete();
}
}, 1000)
});
}
'Web Programming > vue.js' 카테고리의 다른 글
[vue.js] Vue 예제 사이트 (0) | 2021.03.05 |
---|---|
[vue.js] vue Carousel을 이용한 swipe 배너 (0) | 2021.03.05 |
[vsCode] vue.js로 만든 todoList (0) | 2021.01.20 |
[Vue CLI] 05. Vue 부모-자식간의 데이터 전달 Props (0) | 2021.01.12 |
[Vue CLI] 04. 컴포넌트의 생성 및 사용 (0) | 2021.01.12 |