실전 - 간단한 음악 검색 사이트 (3)
1. songHeader.vue 코드
액세서리는 아무런 의미가 없고,
export default {
name: 'songHeader',
data() {
return {
}
}
}
2. searchContent.vue 코드
주요 코드, 좀 길다
-
{{song.name}}
-
- {{num}}
export default {
props: ['slist'],
name: 'searchContent',
data(){
return {
songNum: 0, //
pageNum: [], //
pageSize: 10, //
totalPage: 1, //
curPage: 1, //
showPageList: 0, //
songUrl: '',
idList: [],
}
},
watch: {
slist(newData){
this.pageNum = []; //
this.songNum = newData.length;
this.totalPage = Math.ceil(this.songNum / this.pageSize);
this.totalPage = this.totalPage == 0 ? 1 : this.totalPage;
this.changeList();
this.getShowPageList(newData, this.curPage)
},
curPage(newPage){
this.getShowPageList(this.slist, newPage)
}
},
methods: {
changeList(){
for (var i = 1; i <= this.totalPage; i++) {
this.pageNum.push(i)
}
},
getShowPageList(songlist, index){ //
let begin = (index - 1) * this.pageSize;
let end = index * this.pageSize;
this.showPageList = songlist.slice(begin, end);
},
prevPage(e){
if(this.curPage != 1){
this.curPage --;
}
},
nextPage(e){
if(this.curPage != this.totalPage){
this.curPage ++;
}
console.info(this.curPage);
},
play_url(e){
console.info(e.target.attributes.songID.nodeValue);
var id = e.target.attributes.songID.nodeValue
this.songUrl = 'https://v1.itooi.cn/netease/url?id=' + id + '&quality=flac'
},
},
}
3. 코드 설명
(1) 노래 데이터 로드
(2) 페이지 나누기 기능
여기에 반나절이 걸려서 해결했습니다. 사고방식도 어렵지 않았습니다. 노래 총수songNum, 한 페이지에 페이지 Size: 10개의 데이터를 정의했습니다. 그러면 총 페이지 수는 totalPage=songNum/페이지 Size
(3) 재생
html5 원생 오디오 라벨을 직접 인용하고 controls 속성 디스플레이 재생 컨트롤을 설정했으며 autoplay 속성을 설정하여 준비 상태에서 재생할 수 있도록 했다. 실현 방법은 src 속성을 직접 연결하고 재생 단추를 눌렀을 때 노래 링크를 설정하는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.