原创 http數據通訊

http協議: 1. 無狀態協議, 服務器不會記住客服端 2. 鏈接-接受(拒絕)-再發送請求 【三次握手】 3. 消息分兩塊,頭header(<=32kb),體body(<=2gb) http

原创 vue-music(21)在播放控件中刪除一首和全部刪除

通過actions去改變歌曲的currentIndex,playlist和sequencelist export const deleteSong = function ({commit, state}, song) { let

原创 vue-music(19)mixin的使用及di底部scroll刷新的實現

當多個組件都用到共同的一些js代碼時候,可以吧這些代碼抽象出來,放在mixin中,用到的時候引用 export const playlistMixin = { computed: { ...mapGetters([

原创 vue-music(20)點擊播放及當前博凡歌曲在列表中的顯示的實現

給當前播放的歌曲添加一個class <i class="current" :class="getActivatyCls(item)"></i> getActivatyCls (item) { if (this.curre

原创 vue-music(17)搜索歷史的保存

state創建一個數組存放: searchHistory: [] 然後是mutation和types export const SET_SEARCH_HISTORY = 'SET_SEARCH_HISTORY' [types.SE

原创 vue-music(13)進度條的實現

<template> <!-- 進度條 總體長度 --> <div class="progress-bar" ref="progressBar" @click="progressClick"> <div class="

原创 vur-music(16)search組件

searc頁面有一個搜索框search-box <template> <div class="search-box"> <i class="icon-search"></i> <input type="text" cl

原创 vue-music(15)歌詞的處理

歌詞被referer()保護,所以要景後端反向代理取得數據。 得到的數據是格式不正確,不是一般的json格式,所以經過正則變換一下 var ret = response.data // 歌詞數據 if (t

原创 vue-music(14) 隨機播放的設置

改變播放模式: 到這裏就實現點擊切換圖標了。 因爲原來就有一個播放列表(順序播放列表),只是在此列表基礎上進行隨機播放,所以創建一個新list,用shuffle函數打亂順序播放列表並返回一個新的隨機列表, 記住要重新提

原创 vue-music (12) 播放內核

最重要的就是這個播放器播放頁面 從整體來看,點擊list列表的歌曲會儲存到vuex中,然後進入play頁面,首先給進入來一個動畫 1.手寫動畫的模板 <transition name="normal" @enter="enter" @a

原创 vue-music (3) 輪播圖

抽象出一個輪播圖組件slider <div class="slider" ref="slider"> <div class="slider-group" ref="sliderGroup"> <slot>

原创 vue-music(10)music-list組件

<template> <div class="music-list"> <div class="back" @click="back"> <i class="icon-back"></i> </div>

原创 vue-music (9) vuex 的初始化及應用注意事項

每一個 Vuex 應用的核心就是 store(倉庫)。“store”基本上就是一個容器,它包含着你的應用中大部分的狀態 (state)。Vuex 和單純的全局對象有以下兩點不同: 1. Vuex 的狀態存儲是響應式的。當 Vue 組件從

原创 vue-music (6) 圖片懶加載的使用

npm install vue-lazyload --save 在main.js 中引用 import lazyLoad from 'vue-lazyload' Vue.use(lazyLoad, { loading: req

原创 vue-music (5) scroll組件的封裝

在項目中經常用的組件 <template> <div ref="scroll-wrapper"> // Betterscroll 只對於第一個組件有效,所以要交一個父容器包裹 <slot> </solt> //