音樂是人們生活中不可或缺的一部分。歌詞作為音樂的一項重要元素,其在聽歌時也能起到很好的提示作用。如何解決在Vue中處理歌詞的問題?下面就來為大家介紹一下。
1.使用axios進行歌詞數據請求
axios.get(url).then(res =>{ this.lyrics = res.data; })
上述代碼中,我們使用axios向服務器發送請求并獲取數據,并將獲取的歌詞數據存儲在lyrics中。
2.解析歌詞數據
parseLyrics(lyrics) { const lines = lyrics.split('\n'); const result = []; const timeReg = /\[(\d{2}):(\d{2})\.(\d{2})\]/; lines.forEach(line =>{ const timeMatches = line.match(timeReg); if (timeMatches) { const content = line.replace(timeReg, ''); const time = parseInt(timeMatches[1]) * 60 + parseInt(timeMatches[2]) + parseInt(timeMatches[3]) / 1000; result.push({ time, content }); } }); this.lyricList = result; }
由于歌詞的格式是統一的,我們可以使用一些正則表達式來解析歌詞數據,并將解析完成的歌詞存儲在lyricList中。
3.渲染歌詞
renderLyrics() { const index = this.currentIndex; const lyricList = this.lyricList; const lyricContainer = this.$refs.lyricContainer; if (lyricList.length<= 0) { return; } if (index< 0) { lyricContainer.innerHTML = lyricList[0].content; return; } let lineContent = ''; for (let i = 0; i< index; i++) { lineContent += lyricList[i].content + '
'; } lyricContainer.innerHTML = lineContent + lyricList[index].content; }
通過獲取當前時間與歌詞時間進行比較,我們可以得出當前需要顯示的歌詞,然后將其顯示在頁面上。
至此,我們已經完成了對歌詞的處理和渲染。在Vue中處理歌詞固然比較簡單,但如何運用好這些技巧才能達到更好的效果,還需要自己去不斷嘗試和探索。
下一篇vue點餐設置