使用v-for指令 参考之前布置的那个课后作业的数组数据 把数据渲染出来 并且要写好css样式 实现qq音乐 1行5列类似效果
时间: 2024-04-04 11:31:54 浏览: 142
好的,让我来帮助你解决这个问题。
首先,我们需要在Vue实例中定义一个数组,然后在模板中使用v-for指令来循环渲染数据。
代码示例:
```html
<template>
<div class="music-list">
<div class="music-item" v-for="(item, index) in musicList" :key="index">
<img :src="item.cover" alt="音乐封面">
<div class="music-info">
<h3>{{ item.name }}</h3>
<p>{{ item.singer }}</p>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
musicList: [
{
name: '夜曲',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M000003bBxG71NAaXW.jpg?max_age=2592000'
},
{
name: '七里香',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M000000JxLG13wFpJl.jpg?max_age=2592000'
},
{
name: '告白气球',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M0000013tEz53T3yJZ.jpg?max_age=2592000'
},
{
name: '晴天',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M0000020PeOh4ZaCw1.jpg?max_age=2592000'
},
{
name: '不能说的秘密',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M000001kHg7q1Qyf9Z.jpg?max_age=2592000'
},
{
name: '稻香',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M000003bBxG71NAaXW.jpg?max_age=2592000'
},
{
name: '青花瓷',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M000000JxLG13wFpJl.jpg?max_age=2592000'
},
{
name: '听妈妈的话',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M0000013tEz53T3yJZ.jpg?max_age=2592000'
},
{
name: '东风破',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M0000020PeOh4ZaCw1.jpg?max_age=2592000'
},
{
name: '半岛铁盒',
singer: '周杰伦',
cover: 'https://y.gtimg.cn/music/photo_new/T002R150x150M000001kHg7q1Qyf9Z.jpg?max_age=2592000'
}
]
}
}
}
</script>
<style>
.music-list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 -10px;
}
.music-item {
width: 19%;
margin: 0 10px 20px;
text-align: center;
}
.music-item img {
width: 100%;
border-radius: 5px;
}
.music-info h3 {
margin-top: 10px;
font-size: 14px;
font-weight: bold;
}
.music-info p {
margin-top: 5px;
font-size: 12px;
color: #999;
}
</style>
```
上面的代码中,我们使用了flex布局来实现一行5列的效果。每一列的宽度都是19%,并且设置了margin来控制列与列之间的间距。
在模板中,我们使用了v-for指令来循环渲染数组中的数据。在每一列中,使用了img标签来展示音乐封面,使用了h3和p标签来展示音乐名称和歌手名称。
最后,我们还为每个元素添加了一些CSS样式,来美化展示效果。
阅读全文