国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Vue.js的音樂播放器(Webapp)

widuu / 1948人閱讀

摘要:概述項目是基于,成品是一個移動端的音樂播放器,來源于的實戰課程。播放器是全局組件,放在下面,通過傳遞數據,觸發提交,從而使播放器開始工作。將請求的數據格式化后再通過傳遞,組件間共享,實現歌曲的播放切換等。

概述

項目是基于Vue.js,成品是一個移動端的音樂播放器,來源于imooc的實戰課程。自己動手實踐并加以修改拓展。
項目的大致流程是Vue-cli構建開發環境,分析需求,設計構思,規劃目錄結構,開始編碼。

視圖層

推薦頁

歌手頁

歌手詳情

歌曲排行榜

排行榜詳情

搜索頁

用戶中心

數據來源

所有數據都來自于QQ音樂,抓取自QQ的接口,大部分接口都是JSONP,抓取比較容易,其中一些接口限制了host,不能直接抓取,采用的方法是用axios代理,設置header,以此繞過host的限制。
PS:具體代碼請看prod.server.js文件

技術棧

Vue

Vuex

Vue-Router

Vue-cli

Stylus

Axios

ESlint

Better-scroll

src目錄結構

難點 player組件

講一講player 播放器組件,播放器組件可謂是整個項目的核心,當然數據處理和用戶體驗方面也是不簡單的(逃。
播放器是全局組件,放在App.vue下面,通過Vuex傳遞數據,觸發action提交mutation,從而使播放器開始工作。當然,其中的數據交互說復雜也不是很復雜,就是要花多點時間理解,player組件由多個基礎組件構成,具體請看項目代碼,下面上圖

為了防止切換歌曲時點擊速度過快導致歌曲播放錯誤,使用了audioonplayAPI,結合Vuex獲取到數據,判斷當前歌曲數據請求到才可以切換下一首歌曲,判斷函數如下

 ready() {
   this.songReady = true
 }
數據處理

通過調用QQ音樂的JSONP接口,獲取的數據并不能直接拿來用,需要做進一步的規格化,達到我們使用的要求,所以在這方面多帶帶封裝了一個class來處理這方面的數據,具體請看src/common/js/song.js

在請求JSONP的時候,用到了一個JSONP庫,這個庫代碼十分簡短,只有幾十行,有興趣的同學可以學習下。

使用時,就是將請求的參數拼接在請求url上,然后調用這個庫的jsonp方法。所以,在此封裝了兩個函數,一個是將參數拼接在url上,另一個是將庫里面的jsonp方法Promise化,方便我們使用,具體請查看src/common/js/jsonp.js

將請求的數據格式化后再通過Vuex傳遞,組件間共享,實現歌曲的播放切換等。

交互體驗

該項目的很多地方都涉及到滾動,包括下拉滾動,下拉滾動刷新等。這里面用到了一個庫(better-scroll),來實現所有涉及到的滾動,建議學習下它的API。

其他動畫包括了Vuetransition動畫,路由之間切換時的簡單動畫,播放器打開時的動畫,這個地方比較難,也比較好玩。

打開頁面時的加載Loading效果,其實就是一個Loading組件,也比較簡單。

為了減少流量,圖片加載使用了懶加載的方式,滾動時再加載真實的圖片。
具體效果請自身體驗:)

效果




構建 開發環境
# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# run e2e tests
npm run e2e

# run all tests
npm test
生產環境
# build for production with minification
npm run build
# run
node prod.server.js
總結

通過學習該項目,自己收獲了許多,實踐中也遇到了大大小小許多問題,通過斷點調試等最終解決了,對我來說無疑是最大的鼓勵,也希望能與大家一起學習。
項目地址:https://github.com/k-water/vue-music
喜歡的點個贊
完 :)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84444.html

相關文章

  • 【收藏】2019年最新Vue相關精品開源項目庫匯總

    摘要:前言本文的前身是源自上的項目但由于該項目上次更新時間為年月日,很多內容早已過期或是很多近期優秀組件未被收錄,所以小肆今天重新更新了內容并新建項目。提交的項目格式如下項目名稱子標題相關介紹如果收錄的項目有錯誤,可以通過反饋給小肆。 前言 本文的前身是源自github上的項目awesome-github-vue,但由于該項目上次更新時間為2017年6月12日,很多內容早已過期或是很多近期優...

    williamwen1986 評論0 收藏0
  • Vue 實現網易云音樂 WebApp

    摘要:基于等開發一款移動端音樂,界面參考了安卓版的網易云音樂布局適配常見移動端。圖標使用阿里巴巴圖標庫,中間的唱片旋轉動畫使用了實現。搜索功能實現功能搜索歌手歌單歌曲熱門搜索數據節流上拉刷新保存搜索記錄。 基于 Vue(2.5) + vuex + vue-router + vue-axios +better-scroll + Scss + ES6 等開發一款移動端音樂 WebApp,UI ...

    Karuru 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<