计算属性之computed

 

<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<title>计算属性之computed</title>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			
			ul {
				list-style: none;
			}
			
			ul li {
				margin: 20px 20px;
				padding: 10px 5px;
				border-radius: 3px;
			}
			
			ul li.active {
				background-color: #66FFFF;
			}
		</style>
	</head>

	<body>
		<div id="app">
			<audio :src='getCurrentSongSrc' autoplay controls></audio>
			<ul>
				<li v-for='(item,index) in musicData' :class='{active:currentIndex == index}' @click='clickHandler(index)'>
					<h2>{{item.id}}- 歌名:{{item.name}}</h2>
					<p>歌手:{{item.author}}</p>
				</li>
			</ul>
		</div>
		<script type="text/javascript" src="../js/vue.js"></script>
		<script type="text/javascript">
			var musicData = [{
					id: 1,
					name: '于荣光 - 少林英雄',
					author: '于荣光',
					songSrc: '../static/于荣光 - 少林英雄.mp3'
				},
				{
					id: 2,
					name: 'Joel Adams - Please Dont Go',
					author: 'Joel Adams',
					songSrc: '../static/Joel Adams - Please Dont Go.mp3'
				},
				{
					id: 3,
					name: 'MKJ - Time',
					author: 'MKJ',
					songSrc: '../static/MKJ - Time.mp3'
				},
				{
					id: 4,
					name: 'Russ - Psycho (Pt. 2)',
					author: 'Russ',
					songSrc: '../static/Russ - Psycho (Pt. 2).mp3'
				}
			];

			new Vue({
				el: '#app',
				data() {
					return {
						musicData: musicData,
						currentIndex: 0
					}
				},
				computed: {
					getCurrentSongSrc: function() {
						// 默认只有getter
						return this.musicData[this.currentIndex].songSrc
					}
				},
				methods: {
					clickHandler(index) {
						this.currentIndex = index;
					}
				}
			});
		</script>
	</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值