Vue3+node.js网易云音乐实战项目 歌单页面详细代码
整体效果
1、首先是路由跳转的主页面 ListView.vue
<template>
<div class="listView">
<!-- 传递参数给子组件 -->
<listviewtop :playlist = "state.playlist"></listviewtop>
<listviewIcon :playlist = "state.playlist"></listviewIcon>
<playlistView :playlist = "state.playlist"></playlistView>
</div>
</template>
<script>
import listviewtop from @/components/listView/listviewTop.vue
import listviewIcon from @/components/listView/listviewIcon.vue
import playlistView from @/components/listView/palylistView.vue
import {postPlaylistDetail} from @/api/index;
import { onMounted ,reactive} from vue;
import {useRoute} from vue-router
export default {
components:{
listviewtop,
listviewIcon,
playlistView
},
setup(){
const route = useRoute()
let state = reactive ({
list:[],
playlist:{
creator:{},
tracks:{}
},
})
onMounted(async()=>{
// 获取传入的id
let id = route.query.id
let result = await postPlaylistDetail(id)
state.playlist = result.data.playlist
})
return{
state
}
}
}
</script>
<style lang="less" scoped>
.listView{
width: 7.5rem;
}
</style>
2、listviewTop.vue顶部
然后是三个子组件,listviewTop.vue顶部
3、listviewIcon.vue
然后就是导航栏的子组件部分 listviewIcon.vue
4、playlistView.vue
然后就是播放列表的子组件,playlistView.vue
整体效果
