“VUE 综合应用 播放MV”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
Jihongchang(讨论 | 贡献)  (建立内容为“https://www.bilibili.com/video/BV12J411m7MG/?p=36”的新页面)  | 
				Jihongchang(讨论 | 贡献)   | 
				||
| (未显示同一用户的3个中间版本) | |||
| 第1行: | 第1行: | ||
https://www.bilibili.com/video/BV12J411m7MG/?p=36  | https://www.bilibili.com/video/BV12J411m7MG/?p=36  | ||
| + | |||
| + | === 功能分析 ===  | ||
| + | |||
| + | # mv图标显示(<u>v-if</u>)  | ||
| + | # mv地址获取(<u>接口</u> <u>mvid</u>)  | ||
| + | # 遮罩层(<u>v-show</u> <u>v-on</u>)  | ||
| + | # mv地址设置(<u>v-bind</u>)  | ||
| + | |||
| + | === MV地址获取 ===  | ||
| + | 请求地址:https://autumnfish.cn/mv/url  | ||
| + | |||
| + | 请求方法:get  | ||
| + | |||
| + | 请求参数:id(mvid,为0说明没有mv)  | ||
| + | |||
| + | 响应内容:mv的地址  | ||
| + | |||
| + | === 完整代码 ===  | ||
| + | <syntaxhighlight lang="html">  | ||
| + | <html>  | ||
| + |     <head>  | ||
| + |         <meta charset="UTF-8">  | ||
| + |         <meta name="viewport" content="width=device-width,initial-scale=1.0">  | ||
| + |         <meta http-equiv="X-UA-Compatible" content="ie=edge">  | ||
| + |         <title>悦听player</title>  | ||
| + |         <style>  | ||
| + |             .disc {  | ||
| + |                 position: absolute;  | ||
| + |                 left: 73px;  | ||
| + |                 top: 60px;  | ||
| + |                 z-index: 9;  | ||
| + |             }  | ||
| + |             .cover {  | ||
| + |                 position: absolute;  | ||
| + |                 left: 125px;  | ||
| + |                 top: 112px;  | ||
| + |                 width: 150px;  | ||
| + |                 height: 150px;  | ||
| + |                 border-radius: 75px;  | ||
| + |                 z-index: 8;  | ||
| + |             }  | ||
| + | |||
| + |             /* 旋转的动画 */  | ||
| + |             @keyframes Rotate {  | ||
| + |             from {  | ||
| + |                 transform: rotateZ(0);  | ||
| + |             }  | ||
| + |             to {  | ||
| + |                 transform: rotateZ(360deg);  | ||
| + |             }  | ||
| + |             }  | ||
| + |             /* 旋转的类名 */  | ||
| + |             .autoRotate {  | ||
| + |                 animation-name: Rotate;  | ||
| + |                 animation-iteration-count: infinite;  | ||
| + |                 animation-play-state: paused;  | ||
| + |                 animation-timing-function: linear;  | ||
| + |                 animation-duration: 5s;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper {  | ||
| + |                 width: 180px;  | ||
| + |                 height: 435px;  | ||
| + |                 list-style: none;  | ||
| + |                 position: absolute;  | ||
| + |                 left: 600px;  | ||
| + |                 top: 0px;  | ||
| + |                 padding: 25px 10px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper .title {  | ||
| + |                 position: absolute;  | ||
| + |                 top: 0;  | ||
| + |                 margin-top: 10px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper .comment_list {  | ||
| + |                 overflow: auto;  | ||
| + |                 height: 410px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper .comment_list::-webkit-scrollbar {  | ||
| + |                 display: none;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper dl {  | ||
| + |                 padding-top: 10px;  | ||
| + |                 padding-left: 55px;  | ||
| + |                 position: relative;  | ||
| + |                 margin-bottom: 20px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper dt {  | ||
| + |                 position: absolute;  | ||
| + |                 left: 4px;  | ||
| + |                 top: 10px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper dt img {  | ||
| + |                 width: 40px;  | ||
| + |                 height: 40px;  | ||
| + |                 border-radius: 20px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper dd {  | ||
| + |                 font-size: 12px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper .name {  | ||
| + |                 font-weight: bold;  | ||
| + |                 color: #333;  | ||
| + |                 padding-top: 5px;  | ||
| + |             }  | ||
| + | |||
| + |             .comment_wrapper .detail {  | ||
| + |                 color: #666;  | ||
| + |                 margin-top: 5px;  | ||
| + |                 line-height: 18px;  | ||
| + |             }  | ||
| + | |||
| + |             /* 是否正在播放 */  | ||
| + |             .player_con.playing .disc,  | ||
| + |             .player_con.playing .cover {  | ||
| + |                 animation-play-state: running;  | ||
| + |             }  | ||
| + | |||
| + |             /* 播放杆 转回去 */  | ||
| + |             .player_con.playing .play_bar {  | ||
| + |                 transform: rotate(0);  | ||
| + |             }  | ||
| + | |||
| + |             .video_con video {  | ||
| + |                 position: fixed;  | ||
| + |                 width: 800px;  | ||
| + |                 height: 546px;  | ||
| + |                 left: 50%;  | ||
| + |                 top: 50%;  | ||
| + |                 margin-top: -273px;  | ||
| + |                 transform: translateX(-50%);  | ||
| + |                 z-index: 990;  | ||
| + |             }  | ||
| + | |||
| + |             .video_con .mask {  | ||
| + |                 position: fixed;  | ||
| + |                 width: 100%;  | ||
| + |                 height: 100%;  | ||
| + |                 left: 0;  | ||
| + |                 top: 0;  | ||
| + |                 z-index: 980;  | ||
| + |                 background-color: rgba(0, 0, 0, 0.8);  | ||
| + |             }  | ||
| + | |||
| + |             .video_con .shutoff {  | ||
| + |                 position: fixed;  | ||
| + |                 width: 40px;  | ||
| + |                 height: 40px;  | ||
| + |                 background: url("../images/shutoff.png") no-repeat;  | ||
| + |                 left: 50%;  | ||
| + |                 margin-left: 400px;  | ||
| + |                 margin-top: -273px;  | ||
| + |                 top: 50%;  | ||
| + |                 z-index: 995;  | ||
| + |             }  | ||
| + |         </style>  | ||
| + |     </head>  | ||
| + |     <body>  | ||
| + | |||
| + |         <div class="wrap">  | ||
| + | |||
| + |             <!--播放器主体区域-->  | ||
| + |             <div class="play_wrap" id="player">  | ||
| + | |||
| + |                 <div class="search_bar">  | ||
| + |                     <img src="images/player_title.png" alt=""/>  | ||
| + |                     <!--搜索歌曲-->  | ||
| + |                     <input type="text" autocomplete="off" v-model="query" @keyup.enter="searchMusic"/>  | ||
| + | |||
| + |                     <div class="center_con">  | ||
| + |                         <!--搜索歌曲列表-->  | ||
| + |                         <div class="song_wrapper">  | ||
| + |                             <ul class="song_list">  | ||
| + | |||
| + |                                 <li v-for="item in musicList">  | ||
| + |                                     <!-- <a href="javascript:;" @click="playMusic(x.id)">{{ item.id }}点击播放</a> -->  | ||
| + |                                     <a href="javascript:;" @click="playMusic(item.id)">播放标志</a>  | ||
| + |                                     <b>{{ item.name }}</b>  | ||
| + |                                     <span v-if="item.mvid!=0" @click="playMV(item.mvid)"><i>MV标志</i></span>  | ||
| + |                                 </li>  | ||
| + | |||
| + |                             </ul>  | ||
| + |                             <img src="images/line.png" class="switch_btn" alt="">  | ||
| + |                         </div>  | ||
| + | |||
| + |                         <!--歌曲信息容器-->  | ||
| + |                         <div class="player_con" :class="{playing:isPlaying}">  | ||
| + |                             <img src="images/player_bar.png" class="play_bar"/>  | ||
| + |                             <!--黑胶碟片-->  | ||
| + |                             <img src="images/disc.png" class="disc autoRotate">  | ||
| + |                             <img :src="musicCover" class="cover autoRotate">  | ||
| + |                         </div>  | ||
| + | |||
| + |                         <!--评论容器-->  | ||
| + |                         <div class="comment_wrapper">  | ||
| + |                             <h5 class="title">热门留言</h5>  | ||
| + |                             <div class="comment_list">  | ||
| + |                                 <dl v-for="item in hotComments">  | ||
| + |                                     <dt><img :src="item.user.avatarUrl" alt=""></dt>  | ||
| + |                                     <dd class="name">{{ item.nickname }}</dd>  | ||
| + |                                     <dd class="detail">  | ||
| + |                                         {{ item.content }}  | ||
| + |                                     </dd>  | ||
| + |                                 </dl>  | ||
| + |                             </div>  | ||
| + |                         </div>  | ||
| + |                         <img src="images/line.png" class="right_line">  | ||
| + | |||
| + |                     </div>  | ||
| + | |||
| + |                     <div class="audio_on">  | ||
| + |                         <audio ref="audio" @play="play" @pause="pause" :src="musicUrl" controls autoplay loop class="myaudio"></audio>  | ||
| + |                     </div>  | ||
| + | |||
| + |                     <div class="video_con" v-show="isShow" style="display:none;">  | ||
| + |                         <video :src="mvUrl" controls="controls"></video>  | ||
| + |                         <div class="mask" @click="hide"></div>  | ||
| + |                     </video>  | ||
| + | |||
| + |                 </div>  | ||
| + | |||
| + |             </div>  | ||
| + | |||
| + |         </div>  | ||
| + | |||
| + |         <!-- 开发环境版本,包含了有帮助的命令行警告 -->  | ||
| + |         <script src="vue.js"></script>  | ||
| + |         <script src="axios.min.js"></script>  | ||
| + | |||
| + |         <script>  | ||
| + |             /*  | ||
| + |            1.歌曲搜索接口  | ||
| + |             请求地址:https://autumnfish.cn/search  | ||
| + |             请求方法:get  | ||
| + |             请求参数:keywords(查询关键字)  | ||
| + |             响应内容:歌曲搜索结果  | ||
| + | |||
| + |            2.歌曲url获取接口  | ||
| + |             请求地址:https://autumnfish.cn/song/url  | ||
| + |             请求方法:get  | ||
| + |             请求参数:id(查询关键字)  | ||
| + |             响应内容:歌曲url地址  | ||
| + | |||
| + |            3.歌曲详情获取  | ||
| + |             请求地址:https://autumnfish.cn/song/detail  | ||
| + |             请求方法:get  | ||
| + |             请求参数:ids(歌曲id)  | ||
| + |             响应内容:歌曲推荐(包括封面信息)  | ||
| + | |||
| + |             4.热门评论获取  | ||
| + |             请求地址:https://autumnfish.cn/comment/hot?type=0  | ||
| + |             请求方法:get  | ||
| + |             请求参数:id(歌曲id,地址中的type固定为0)  | ||
| + |             响应内容:歌曲的热门评论  | ||
| + | |||
| + |             5.MV地址获取  | ||
| + |             请求地址:https://autumnfish.cn/mv/url  | ||
| + |             请求方法:get  | ||
| + |             请求参数:id(mvid,为0说明没有mv)  | ||
| + |             响应内容:MV的地址  | ||
| + |             */  | ||
| + |             var app = new Vue({  | ||
| + |                 el:"#player",  | ||
| + |                 data: {  | ||
| + |                     //查询关键字  | ||
| + |                     query:"",  | ||
| + |                     //歌曲数组  | ||
| + |                     musicList:[],  | ||
| + |                     //歌曲地址  | ||
| + |                     musicUrl:"",  | ||
| + |                     //歌曲封面  | ||
| + |                     musicCover:"",  | ||
| + |                     //歌曲评论  | ||
| + |                     hotComments:[],  | ||
| + |                     //动画播放状态  | ||
| + |                     isPlaying:false,  | ||
| + |                     // 遮罩层的显示状态  | ||
| + |                     isShow: false,  | ||
| + |                     // MV地址  | ||
| + |                     mvUrl:""  | ||
| + |                 },  | ||
| + |                 methods :{  | ||
| + | |||
| + |                     // 歌曲搜索  | ||
| + |                     searchMusic: function () {  | ||
| + |                         var that = this;  | ||
| + |                         axios.get("https://autumnfish.cn/search?keywords="+this.query)  | ||
| + |                         .then(function(response){  | ||
| + |                             // console.log(response);  | ||
| + |                             that.musicList = response.data.result.songs;  | ||
| + |                             // console.log(response.data.result.songs);  | ||
| + |                         },function(err){  | ||
| + | |||
| + |                         })  | ||
| + |                     },  | ||
| + |                     //歌曲播放  | ||
| + |                     playMusic: function(musicId) {  | ||
| + |                         // console.log(musicId);  | ||
| + |                         var that = this;  | ||
| + |                         // 获取歌曲地址  | ||
| + |                         axios.get("https://autumnfish.cn/song/url?id=" + musicId)  | ||
| + |                         .then(function(response){  | ||
| + |                             console.log(response);  | ||
| + |                             // console.log  | ||
| + |                             console.log(response.data.data[0].url);  | ||
| + |                             that.musicUrl = response.data.data[0].url;  | ||
| + |                         }, function(err){})  | ||
| + | |||
| + |                         // 歌曲详情获取  | ||
| + |                         axios.get("https://autumnfish.cn/song/detail?ids="+musicId)  | ||
| + |                         .then(function(response){  | ||
| + |                             console.log(response);  | ||
| + |                             console.log(response.data.songs[0].al.picUrl);  | ||
| + |                             that.musicCover = response.data.songs[0].al.picUrl;  | ||
| + |                         }, function(err){})  | ||
| + | |||
| + |                         //歌曲评论获取  | ||
| + |                         axios.get("https://autumnfish.cn/comment/hot?type=0&id=" + musicId)  | ||
| + |                         .then(function(response){  | ||
| + |                             console.log("歌曲评论获取");  | ||
| + |                             console.log(response)  | ||
| + |                             console.log(response.data.hotComments);  | ||
| + |                             that.hotComments = response.data.hotComments;  | ||
| + |                         },function(err){  | ||
| + | |||
| + |                         })  | ||
| + |                     },  | ||
| + |                     // 歌曲播放  | ||
| + |                     play:function(){  | ||
| + |                         // console.log("play");  | ||
| + |                         this.isPlaying = true;  | ||
| + |                     },  | ||
| + |                     // 歌曲暂停  | ||
| + |                     pause:function(){  | ||
| + |                         // console.log("pause");  | ||
| + |                         this.isPlaying = false;  | ||
| + |                     },  | ||
| + |                     // 播放MV  | ||
| + |                     playMV:function(mvid){  | ||
| + |                         var that = this;  | ||
| + |                         axios.get("https://autumnfish.cn/mv/url?id="+mvid)  | ||
| + |                         .then(function(response){  | ||
| + |                             // console.log(response);  | ||
| + |                             console.log(response.data.data.url);  | ||
| + |                             that.isShow = true;  | ||
| + |                             that.mvUrl = response.data.data.url;  | ||
| + |                         }, function(err){  | ||
| + | |||
| + |                         })  | ||
| + |                     },  | ||
| + |                     hide:function(){  | ||
| + |                         this.isShow = false;  | ||
| + |                     }  | ||
| + |                 }  | ||
| + |             })  | ||
| + |         </script>  | ||
| + | |||
| + |     </body>  | ||
| + | </html>  | ||
| + | </syntaxhighlight>  | ||
| + | |||
| + | === 总结和注意 ===  | ||
| + | |||
| + | * 不同的接口需要的数据是 <u>不同</u> 的,文档的阅读需要 <u>仔细</u>  | ||
| + | * 页面结构复杂之后,通过 <u>审查元素</u> 的方式去 <u>快速定位</u> 相关元素  | ||
| + | * 响应式的数据都需要定义在 <u>data</u> 中  | ||
2023年8月14日 (一) 02:05的最新版本
https://www.bilibili.com/video/BV12J411m7MG/?p=36
功能分析
- mv图标显示(v-if)
 - mv地址获取(接口 mvid)
 - 遮罩层(v-show v-on)
 - mv地址设置(v-bind)
 
MV地址获取
请求地址:https://autumnfish.cn/mv/url
请求方法:get
请求参数:id(mvid,为0说明没有mv)
响应内容:mv的地址
完整代码
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>悦听player</title>
        <style>
            .disc {
                position: absolute;
                left: 73px;
                top: 60px;
                z-index: 9;
            }
            .cover {
                position: absolute;
                left: 125px;
                top: 112px;
                width: 150px;
                height: 150px;
                border-radius: 75px;
                z-index: 8;
            }
            /* 旋转的动画 */
            @keyframes Rotate {
            from {
                transform: rotateZ(0);
            }
            to {
                transform: rotateZ(360deg);
            }
            }
            /* 旋转的类名 */
            .autoRotate {
                animation-name: Rotate;
                animation-iteration-count: infinite;
                animation-play-state: paused;
                animation-timing-function: linear;
                animation-duration: 5s;
            }
            .comment_wrapper {
                width: 180px;
                height: 435px;
                list-style: none;
                position: absolute;
                left: 600px;
                top: 0px;
                padding: 25px 10px;
            }
            .comment_wrapper .title {
                position: absolute;
                top: 0;
                margin-top: 10px;
            }
            .comment_wrapper .comment_list {
                overflow: auto;
                height: 410px;
            }
            .comment_wrapper .comment_list::-webkit-scrollbar {
                display: none;
            }
            .comment_wrapper dl {
                padding-top: 10px;
                padding-left: 55px;
                position: relative;
                margin-bottom: 20px;
            }
            .comment_wrapper dt {
                position: absolute;
                left: 4px;
                top: 10px;
            }
            .comment_wrapper dt img {
                width: 40px;
                height: 40px;
                border-radius: 20px;
            }
            .comment_wrapper dd {
                font-size: 12px;
            }
            .comment_wrapper .name {
                font-weight: bold;
                color: #333;
                padding-top: 5px;
            }
            .comment_wrapper .detail {
                color: #666;
                margin-top: 5px;
                line-height: 18px;
            }
            /* 是否正在播放 */
            .player_con.playing .disc,
            .player_con.playing .cover {
                animation-play-state: running;
            }
            /* 播放杆 转回去 */
            .player_con.playing .play_bar {
                transform: rotate(0);
            }
            .video_con video {
                position: fixed;
                width: 800px;
                height: 546px;
                left: 50%;
                top: 50%;
                margin-top: -273px;
                transform: translateX(-50%);
                z-index: 990;
            }
            .video_con .mask {
                position: fixed;
                width: 100%;
                height: 100%;
                left: 0;
                top: 0;
                z-index: 980;
                background-color: rgba(0, 0, 0, 0.8);
            }
            .video_con .shutoff {
                position: fixed;
                width: 40px;
                height: 40px;
                background: url("../images/shutoff.png") no-repeat;
                left: 50%;
                margin-left: 400px;
                margin-top: -273px;
                top: 50%;
                z-index: 995;
            }
        </style>
    </head>
    <body>
        
        <div class="wrap">
            <!--播放器主体区域-->
            <div class="play_wrap" id="player">
                <div class="search_bar">
                    <img src="images/player_title.png" alt=""/>
                    <!--搜索歌曲-->
                    <input type="text" autocomplete="off" v-model="query" @keyup.enter="searchMusic"/>
                    <div class="center_con">
                        <!--搜索歌曲列表-->
                        <div class="song_wrapper">
                            <ul class="song_list">
                                <li v-for="item in musicList">
                                    <!-- <a href="javascript:;" @click="playMusic(x.id)">{{ item.id }}点击播放</a> -->
                                    <a href="javascript:;" @click="playMusic(item.id)">播放标志</a>
                                    <b>{{ item.name }}</b>
                                    <span v-if="item.mvid!=0" @click="playMV(item.mvid)"><i>MV标志</i></span>
                                </li>
                            </ul>
                            <img src="images/line.png" class="switch_btn" alt="">
                        </div>
                        <!--歌曲信息容器-->
                        <div class="player_con" :class="{playing:isPlaying}">
                            <img src="images/player_bar.png" class="play_bar"/>
                            <!--黑胶碟片-->
                            <img src="images/disc.png" class="disc autoRotate">
                            <img :src="musicCover" class="cover autoRotate">
                        </div>
                        <!--评论容器-->
                        <div class="comment_wrapper">
                            <h5 class="title">热门留言</h5>
                            <div class="comment_list">
                                <dl v-for="item in hotComments">
                                    <dt><img :src="item.user.avatarUrl" alt=""></dt>
                                    <dd class="name">{{ item.nickname }}</dd>
                                    <dd class="detail">
                                        {{ item.content }}
                                    </dd>
                                </dl>
                            </div>
                        </div>
                        <img src="images/line.png" class="right_line">
                    </div>
                    <div class="audio_on">
                        <audio ref="audio" @play="play" @pause="pause" :src="musicUrl" controls autoplay loop class="myaudio"></audio>
                    </div>
                    <div class="video_con" v-show="isShow" style="display:none;">
                        <video :src="mvUrl" controls="controls"></video>
                        <div class="mask" @click="hide"></div>
                    </video>
                </div>
            </div>
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="vue.js"></script>
        <script src="axios.min.js"></script>
        
        <script>
            /*
           1.歌曲搜索接口
            请求地址:https://autumnfish.cn/search
            请求方法:get
            请求参数:keywords(查询关键字)
            响应内容:歌曲搜索结果
           2.歌曲url获取接口
            请求地址:https://autumnfish.cn/song/url
            请求方法:get
            请求参数:id(查询关键字)
            响应内容:歌曲url地址
           3.歌曲详情获取
            请求地址:https://autumnfish.cn/song/detail
            请求方法:get
            请求参数:ids(歌曲id)
            响应内容:歌曲推荐(包括封面信息)
            4.热门评论获取
            请求地址:https://autumnfish.cn/comment/hot?type=0
            请求方法:get
            请求参数:id(歌曲id,地址中的type固定为0)
            响应内容:歌曲的热门评论
            5.MV地址获取
            请求地址:https://autumnfish.cn/mv/url
            请求方法:get
            请求参数:id(mvid,为0说明没有mv)
            响应内容:MV的地址
            */
            var app = new Vue({
                el:"#player",
                data: {
                    //查询关键字
                    query:"",
                    //歌曲数组
                    musicList:[],
                    //歌曲地址
                    musicUrl:"",
                    //歌曲封面
                    musicCover:"",
                    //歌曲评论
                    hotComments:[],
                    //动画播放状态
                    isPlaying:false,
                    // 遮罩层的显示状态
                    isShow: false,
                    // MV地址
                    mvUrl:""
                },
                methods :{
                    // 歌曲搜索
                    searchMusic: function () {
                        var that = this;
                        axios.get("https://autumnfish.cn/search?keywords="+this.query)
                        .then(function(response){
                            // console.log(response);
                            that.musicList = response.data.result.songs;
                            // console.log(response.data.result.songs);
                        },function(err){
                        })
                    },
                    //歌曲播放
                    playMusic: function(musicId) {
                        // console.log(musicId);
                        var that = this;
                        // 获取歌曲地址
                        axios.get("https://autumnfish.cn/song/url?id=" + musicId)
                        .then(function(response){
                            console.log(response);
                            // console.log
                            console.log(response.data.data[0].url);
                            that.musicUrl = response.data.data[0].url;
                        }, function(err){})
                        // 歌曲详情获取
                        axios.get("https://autumnfish.cn/song/detail?ids="+musicId)
                        .then(function(response){
                            console.log(response);
                            console.log(response.data.songs[0].al.picUrl);
                            that.musicCover = response.data.songs[0].al.picUrl;
                        }, function(err){})
                        //歌曲评论获取
                        axios.get("https://autumnfish.cn/comment/hot?type=0&id=" + musicId)
                        .then(function(response){
                            console.log("歌曲评论获取");
                            console.log(response)
                            console.log(response.data.hotComments);
                            that.hotComments = response.data.hotComments;
                        },function(err){
                        })
                    },
                    // 歌曲播放
                    play:function(){
                        // console.log("play");
                        this.isPlaying = true;
                    },
                    // 歌曲暂停
                    pause:function(){
                        // console.log("pause");
                        this.isPlaying = false;
                    },
                    // 播放MV
                    playMV:function(mvid){
                        var that = this;
                        axios.get("https://autumnfish.cn/mv/url?id="+mvid)
                        .then(function(response){
                            // console.log(response);
                            console.log(response.data.data.url);
                            that.isShow = true;
                            that.mvUrl = response.data.data.url;
                        }, function(err){
                        })
                    },
                    hide:function(){
                        this.isShow = false;
                    }
                }
            })
        </script>
    </body>
</html>
总结和注意
- 不同的接口需要的数据是 不同 的,文档的阅读需要 仔细
 - 页面结构复杂之后,通过 审查元素 的方式去 快速定位 相关元素
 - 响应式的数据都需要定义在 data 中