基於Taro與typescript開發的網易雲音樂小程序(持續更新)


基於Taro與網易雲音樂api開發,技術棧主要是:typescript+taro+taro-ui+redux,目前主要是着重小程序端的展示,主要也是借此項目強化下上述幾個技術棧的使用,通過這個項目也可以幫助你快速使用Taro開發一個屬於你自己的小程序~

GitHub stars GitHub forks GitHub watchers

github地址:taro-music,感興趣的話可以star關注下,功能會進行持續完善

快速開始

首先需要在src目錄下創建一個config.ts,可以根據自己的需要將其替換成線上地址,接口服務是使用的NeteaseCloudMusicApi

export const baseUrl: string = 'http://localhost:3000' // 這里的配置的這個url是后端服務的請求地址

在運行本項目前,請先確保已經全局安裝了Taro,安裝可見官網指導

啟動后端接口服務

git clone https://github.com/Binaryify/NeteaseCloudMusicApi.git

cd NeteaseCloudMusicApi

npm i

npm run start

接下來啟動前端項目

git clone https://github.com/lsqy/taro-music.git

cd taro-music

npm i

npm run dev:weapp

功能列表

  • [x] 用戶登陸
  • [x] 退出登陸
  • [x] 我的關注列表
  • [x] 我的粉絲列表
  • [ ] 我的動態列表
  • [x] 最近播放列表
  • [ ] 我的電台
  • [ ] 我的收藏
  • [x] 推薦歌單
  • [x] 推薦電台
  • [x] 推薦電台
  • [x] 我創建的歌單列表
  • [x] 我收藏的歌單列表
  • [x] 共用的歌單詳情列表
  • [x] 歌曲播放頁面
  • [x] 歌詞滾動
  • [x] 歌曲切換播放模式(隨機播放/單曲循環/順序播放)
  • [x] 切換上一首/下一首
  • [x] 喜歡/取消喜歡某首歌曲
  • [x] 視頻播放
  • [ ] 評論列表
  • [x] 統一的播放組件,方便進行切換頁面后可以隨時進入到播放頁面

目錄結構簡要介紹

這里主要介紹下src目錄,因為開發主要是在這個目錄下進行的

- src
 - actions // `redux`中的相關異步操作在這里進行
 - assets // 靜態資源目錄,這里引入了所需的圖片資源,以及`fontawesome`字體圖標資源
 - components // 封裝的項目中可復用的組件,目前只是抽象了`CLoading`(加載效果組件)、`CLyric`(歌詞組件)、`CMusic`(正在播放組件)、`CSlide`(滑塊組件)、`CTitle`、`CUserListItem`
 - constants // 項目中的常量定義,目前定義了`typescript`的公共定義、`reducers`的名稱定義、狀態碼的定義
 - pages // 項目中的業務頁面都在這個目錄中
 - reducers // `redux`中的相關同步操作在這里進行
 - services // 可復用的服務可以放在這個目錄中,目前只是封裝了接口請求的公共服務,可以根據自己項目的需要進行其他服務的擴充
 - store // redux的初始文件
 - utils // 可以復用的工具方法可以放到這個目錄當中,目前封裝了格式化、歌詞解析的相關方法
  - decorators // 抽象的裝飾器,主要為了解決在切換頁面之后仍然可以繼續保持播放狀態,因為目前`taro`不支持全局組件
 - app.scss // 全局樣式
 - app.tsx // 全局入口文件
 - base.scss // 基礎樣式
 - config.ts // 項目的全局配置,目前只是配置了`baseUrl`是后端服務的基准請求地址

todo

  • 復用的評論列表
  • 個人主頁支持跳轉
  • 歌手頁面
  • react-hooks重構部分功能

最近更新

  • 加入搜索功能(有待進一步完善)
  • 加入了視頻搜索以及播放(有待進一步完善)
  • 加入了mv搜索以及播放(有待進一步完善)

效果圖預覽

下面簡要列出幾張效果圖

有待完善部分

還有一些功能點以及細節都還有待進一步完善,目前先把大致主要的功能進行了下實現,當然如果發現什么問題,歡迎能夠提交issues,發現之后我會及時進行更正,歡迎 starfork,感謝大家支持🙏。

文章首發自個人博客基於Taro與typescript開發的網易雲音樂小程序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM