<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul li {
list-style: none;
padding: 10px 5px;
margin: 15px;
border-radius: 5px;
}
.active {
background-color: #0ff;
}
</style>
</head>
<body>
<div id="app">
<audio :src="musicSrc" autoplay controls></audio>
<ul>
<li v-for="(item,index) in musicData" @click="clickHandler(index)" :class="{active: currentIndex === index}">{{item.id}}--歌名:{{item.name}}--地址:{{item.src}}</li>
</ul>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
var musicData = [
{
id: 1,
name: 'John',
src: 'D:/CloudMusic/Blaxy Girls - If You Feel My Love (Chaow Mix).mp3'
},
{
id: 2,
name: 'David',
src: 'D:/CloudMusic/Bruno Mars - Marry You.mp3'
},
{
id: 3,
name: 'Lucy',
src: 'D:/CloudMusic/Federica Camba - Cosi tanto.mp3'
},
{
id: 4,
name: 'Lily',
src: 'D:/CloudMusic/Hugh Grant; Drew Barrymore - Way Back Into Love (Demo).mp3'
}
];
new Vue({
el: '#app',
data() {
return {
musicData: musicData,
currentIndex: 0
};
},
methods: {
clickHandler: function (index) {
this.musicSrc = index;
}
},
computed: {
// // 计算属性默认只有getter
// musicSrc: function () {
// return this.musicData[this.currentIndex].src;
// }
musicSrc: {
set: function (newV) {
this.currentIndex = newV;
},
get: function () {
return this.musicData[this.currentIndex].src;
}
}
}
});
</script>
</body>
</html>