【发布时间】:2019-04-07 18:21:42
【问题描述】:
我目前正在开发一个音乐播放器,我有一个“曲目”组件,用于检索显示歌曲列表的 ajax 请求。 onClick 我将歌曲数据放入我试图发送到一个完全不相关的组件的对象中,该组件是音频播放器。将此数据发送到音频播放器的最佳方式是什么?
跟踪
<template>
<div id="tracks">
<h5 class="header">Top tracks</h5>
<select name="range" v-model="range">
<option value="day">Day</option>
<option value="week">Week</option>
<option value="month">Month</option>
<option value="year">Year</option>
<option value="life">Life</option>
</select>
<br>
<div id="top-tracks">
<div id="track" v-for="(track) in tracks" :key='track.id'>
<img @click="currentTrack(track)" class="cover" :src="'https://api.napster.com/imageserver/v2/albums/' + track.albumId + '/images/500x500.jpg'">
<div class=content-name><p>{{track.name}}</p></div>
<div class="artist-name"><p>{{track.artistName}}</p></div>
</div>
</div>
</div>
</template>
<script>
import axios from 'axios';
export default {
name: 'Tracks',
components: {
},
data () {
return {
tracks: [],
track: {
name: "",
artist: "",
album: "",
song: ""
},
range: 'day'
}
},
created() {
this.trackData();
},
watch: {
range : function () {
this.trackData();
}
},
methods: {
trackData: function () {
axios.get('http://api.napster.com/v2.2/tracks/top?apikey=YTkxZTRhNzAtODdlNy00ZjMzLTg0MWItOTc0NmZmNjU4Yzk4&limit=10&range=' + this.range)
.then(response => {
// JSON responses are automatically parsed.
this.tracks = response.data.tracks
})
.catch(e => {
this.errors.push(e)
})
},
currentTrack: function (track) {
this.track.name = track.name;
this.track.artist = track.artistName;
this.track.album = track.albumId;
this.track.song = track.href;
}
}
}
</script>
音频播放器
<template>
<div id="audio-player">
<div class="player__inner">
<current-track class="player__left"/>
<div class="player__center">
<player-controls/>
<player-playback/>
</div>
<div class="player__right">
<!-- <device-picker/> -->
<!-- <volume-bar/> -->
</div>
</div>
</div>
</template>
<script>
import CurrentTrack from './CurrentTrack';
import PlayerControls from './PlayerControls';
import PlayerPlayback from './PlayerPlayback';
export default {
name: "audio-player",
components: {
CurrentTrack,
PlayerControls,
PlayerPlayback
},
data () {
return {
}
}
}
</script>
【问题讨论】:
-
你需要一个 vuex:vuex.vuejs.org
标签: javascript vue.js