Vue入门

Vue作为一个目前很火的前端框架,学习基础需要HTML,CSS,JavaScript。有了这些基础基本能在几个小时之内入门,一些标签根本没必要死记硬背,这篇笔记作为一个引导。

1.快速入门视频 https://www.bilibili.com/video/BV12J411m7MG

2.视频代码

资料参考:https://github.com/zj-196/VUE/tree/master/VUE

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>悦听player</title>
    <link rel="stylesheet" href="./css/index.css">
  </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="musicName" @keyup.enter="searchMusic" />
        </div>
        <div class="center_con">
          <!-- 搜索歌曲列表 -->
          <div class='song_wrapper'>
            <ul class="song_list">
             <li v-for="item in musicList">
                 <a href="javascript:;" @click="playMusic(item.id)"></a> 
                 <b>{{item.name}}</b> 
                 <span><i @click="getMV(item.mvid)" v-if="item.mvid!=0"></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 hotCommentList">
                <dt><img :src="item.user.avatarUrl" alt=""></dt>
                <dd class="name">{{item.user.nickname}}</dd>
                <dd class="detail">
                  {{item.content}}
                </dd>
              </dl>
            </div>
            <img src="images/line.png" class="right_line">
          </div>
        </div>
        <div class="audio_con">
          <audio ref='audio' @play="play" @pause="pause" :src="musicUrl" controls autoplay loop class="myaudio"></audio>
        </div>
        <div class="video_con"  style="display: none;" v-show="isShow">
          <video  controls="controls" :src="mvUrl"></video>
          <div class="mask" @click="hide"></div>
        </div>
      </div>
    </div>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- 官网提供的 axios 在线地址 -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="./js/main.js"></script>
</body>
</html>

js

/*
  1:歌曲搜索接口
    请求地址:https://autumnfish.cn/search
    请求方法:get
    请求参数:keywords(查询关键字)
    响应内容:歌曲搜索结果
  2:歌曲url获取接口
    请求地址:https://autumnfish.cn/song/url
    请求方法:get
    请求参数:id(歌曲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:{
        //歌曲名称
        musicName:"",
        //歌曲列表
        musicList:[],
        //歌曲地址
        musicUrl:"",
        //歌曲封面
        musicCover:"",
        //热门评论
        hotCommentList:[],
        //歌曲MV
        mvUrl:"",
        //封面状态
        isPlaying:false,
        // 遮罩层状态
        isShow:false
    },
    methods:{
        //搜索歌曲
        searchMusic:function(){
            var that = this;
            axios.get("https://autumnfish.cn/search?keywords="+this.musicName)
            .then(function(response){
                //console.log(response.data.result.songs)
                that.musicList = response.data.result.songs;
            },function(err){})
        },
        //播放歌曲
        playMusic:function(musicId){
            var that = this;
            axios.get("https://autumnfish.cn/song/url?id="+musicId)
            .then(function(response){
                //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.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(response.data.hotComments)
                that.hotCommentList = response.data.hotComments;
            },function(err){})
        },
        // 歌曲播放
        play: function() {
            // console.log("play");
            this.isPlaying = true;
        },
        // 歌曲暂停
        pause: function() {
            // console.log("pause");
            this.isPlaying = false;
        },
        // 播放mv
        getMV:function(mvid) {
            var that = this;
            axios.get("https://autumnfish.cn/mv/url?id="+mvid).then(
            function(response) {
                console.log(response.data.data.url);
                that.isShow = true;
                that.mvUrl = response.data.data.url;
            },
                function(err) {}
            );
        },
        hide:function() {
            this.isShow = false;
        }
    }
})

 

3.官方API https://cn.vuejs.org/v2/guide/installation.html

posted @ 2020-05-31 21:15  别动我的猫  阅读(367)  评论(0编辑  收藏  举报