时间:2023-04-23 21:51:01 | 来源:网站运营
时间:2023-04-23 21:51:01 来源:网站运营
【个人练习】网易云音乐PC端仿站 Vue 2(七):// Header组件<script>export default { mounted() { this.$bus.$on('appear', () => { this.openLoginBox() }) }}</script>
// 我的音乐未登录页面<template><div class="not-logged"> <!-- 立即登录按钮 --> <a href="javascript:;" class="btn" @click="$bus.$emit('appear')"></a></div></template>
获取用户信息,歌单,收藏,MV,DJ数量2. 我的音乐一级路由为
说明 : 登录后调用此接口 , 可以获取用户信息
接口地址 :/user/subcount
获取用户歌单
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户歌单
必选参数 :uid
: 用户 id
可选参数 :limit
: 返回数量 , 默认为 30offset
: 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
接口地址 :/user/playlist
收藏的歌手列表
说明 : 调用此接口,可获取收藏的歌手列表
接口地址 :/artist/sublist
收藏的MV列表
说明 : 调用此接口,可获取收藏的 MV 列表
接口地址 :/mv/sublist
电台的订阅列表
说明 : 登录后调用此接口 , 可获取订阅的电台列表
接口地址 :/dj/sublist
/my
,通过二级路由区分当前展示的内容:我的歌手(/my/artist)、我的视频(/my/mv)、我的电台(/my/radio)、创建/收藏的歌单(/my/playlist/:id)// 我的音乐-歌单页面<script>export default { data () { return { playlistInfo: {}, // 歌单信息 } } methods: { // 播放歌单 async setPlaylist() { let ids = []; this.playlistInfo.trackIds.forEach(item => { ids.push(item.id) }) await this.$store.dispatch('music/setMusicNow', ids[0]) ids = ids.join(',') await this.$store.dispatch('music/setMusicList', ids) this.$bus.$emit('play') }, // 播放歌曲 async playMusic(id) { await this.$store.dispatch('music/setMusicNow', id) await this.$store.dispatch('music/addMusic', id) this.$bus.$emit('play') }, }}</script>
// 音乐播放器组件<script>export default { mounted() { this.$bus.$on('play', () => { this.playMusic() // 播放歌曲 }) }}</script>
获取用户详情
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户详情
必选参数 :uid
: 用户 id
接口地址 :/user/detail
获取用户动态
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户动态
必选参数 :uid
: 用户 id
可选参数 :limit
: 返回数量 , 默认为 30lasttime
: 返回数据的lasttime
,默认-1,传入上一次返回结果的 lasttime,将会返回下一页的数据
接口地址 :/user/event
query
的id
标识当前展示的专辑、歌单、歌手或歌曲的ID。获取专辑内容歌单页面:
说明 : 调用此接口 , 传入专辑 id, 可获得专辑内容
必选参数 :id
: 专辑 id
接口地址 :/album
专辑评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该专辑的所有评论 ( 不需要 登录 )
必选参数 :id
: 专辑 id
可选参数 :limit
: 取出评论数量 , 默认为 20offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值before
: 分页参数,取上一页最后一项的time
获取下一页数据(获取超过 5000 条评论的时候需要用到)
接口地址 :/comment/album
相关歌单推荐歌手页面:
说明 : 调用此接口,传入歌单 id 可获取相关歌单
必选参数 :id
: 歌单 id
接口地址 :/related/playlist
收藏/取消收藏歌单
说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单
必选参数 :t
: 类型,1:收藏,2:取消收藏id
: 歌单 id
接口地址 :/playlist/subscribe
获取相似歌手歌曲页面:
说明 : 调用此接口 , 传入歌手 id, 可获得相似歌手
必选参数 :id
: 歌手 id
接口地址 :/simi/artist
获取歌手描述
说明 : 调用此接口 , 传入歌手 id, 可获得歌手描述
必选参数 :id
: 歌手 id
接口地址 :/artist/desc
歌手热门50首歌曲
说明 : 调用此接口,可获取歌手热门 50 首歌曲
必选参数 :id
: 歌手 id
接口地址 :/artist/top/song
获取歌手专辑
说明 : 调用此接口 , 传入歌手 id, 可获得歌手专辑内容
必选参数 :id
: 歌手 id
可选参数 :limit
: 取出数量 , 默认为 30offset
: 偏移数量 , 用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认 为 0
接口地址 :/artist/album
获取歌手MV
说明 : 调用此接口 , 传入歌手 id, 可获得歌手 mv 信息 , 具体 mv 播放地址可调 用/mv
传入此接口获得的 mvid 来拿到 , 如 :/artist/mv?id=6452
,/mv?mvid=5461064
必选参数 :id
: 歌手 id, 可由搜索接口获得
接口地址 :/artist/mv
收藏/取消收藏歌手
说明 : 调用此接口,可收藏歌手
必选参数 :id
: 歌手 idt
:操作,1 为收藏,其他为取消收藏
接口地址 :/artist/sub
获取相似音乐3. 在其他页面使用
说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌曲
必选参数 :id
: 歌曲 id
接口地址 :/simi/song
歌曲评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该音乐的所有评论 ( 不需要登录 )
必选参数 :id
: 音乐 id
可选参数 :limit
: 取出评论数量 , 默认为 20offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值before
: 分页参数,取上一页最后一项的time
获取下一页数据(获取超过 5000 条评论的时候需要用到)
接口地址 :/comment/music
<router-link>
标签点击跳转到专辑、歌单、歌手或歌曲页面:<template><div> <!-- 跳转到专辑页面 --> <router-link :to="{path: '/album', query: {id: `${item.id}`}}"></router-link> <!-- 跳转到歌单页面 --> <router-link :to="{path: '/playlist', query: {id: `${item.id}`}}"></router-link> <!-- 跳转到歌手页面 --> <router-link :to="{path: '/artist', query: {id: `${item.id}`}}"></router-link> <!-- 跳转到歌曲页面 --> <router-link :to="{path: '/song', query: {id: `${item.id}`}}"></router-link></div></template>
4. 通过接口获取到的专辑介绍信息(歌单介绍、歌手艺人介绍、歌曲介绍类似)需要将字符串中的换行符/n
转换为<br>
,并使用v-html
赋值给<p>
标签展示,否则不能解析HTML标签。关键词:音乐,练习