?一个基于 React 开发的PC端音乐App。

同时支持 Mac 与 Windows 系统。下载地址

项目使用 electron 作为外壳,webpack 作为打包工具,核心技术包括 React + Redux + React-router v4 + antd,简单实现了一个音乐播放器的基础功能。

项目结构设计

|
|—— config // 打包配置
|—— mock // 模拟数据
|—— resource // 一些打包使用到的资源文件
└── src├── main // 主进程└── renderer // 渲染进程├── actions├── api // 接口├── assets // 公用静态资源├── components // redux展示组件├── containers // redux容器组件└── reducers
复制代码

关键技术点

  • 工程模式批量生产列表“高阶”组件

通过一个通用的工厂函数 connectListHoc,并定义相关的接口与参数规范,从而在其他地方能够通过使用该函数批量生产 react 组件,解决类似组件的复用问题

// define
export function connectListHoc ({className,stateName,playIcon = false,getAllData,itemOnClick
}, ListItemRender) {return '...'
}
// how to use
export default connectListHoc({...})
复制代码
  • 歌词界面高斯模糊

核心是css3的filter属性,由于该属性对性能有一定要求,因此使用该属性时,px值不能设置太高。一开始的设计是采用非常强烈的模糊效果,在mac端并无大问题,但是发现在较低配置的Windows上面会造成卡顿现象。最终的解决方案是设置2个div,第一个用来作为模糊背景图,第二个用于显示不被模糊的文字(同时使用半透明黑色遮罩,避免颜色冲突)。

.background {position: absolute;height: 100%;width: 100%;background-color: @background-color; /* 图片未加载出来时 */filter: blur(15px);
}
.content {height: 100%;background-color: rgba(0, 0, 0, .5);
}
复制代码
  • redux中间件与promise的配合使用
  • ant-design按需打包与自定义react模版结合
  • 拖拽本地歌曲进行播放
  • 主进程与渲染进程的通信

Screenshot

项目包括几个基本页面,内部使用路由进行实现,其中,我的歌单及私人音乐馆必须登录后才可见。

在此,非常感谢 NeteaseCloudMusicApi 提供的 API。

这是一个个人茶余饭后的项目,也是对 React 技术栈的一次实践过程。项目中仍然有很多需要改进的地方,例如对 Redux 的 actions 还没有做到较好的模块化,因为使用了 ant-design,导致没有拆分足够的展示组件,界面也显得较为粗糙等。同时现阶段并没有对 electron 进行深入的开发,可以看到在登录界面,关于界面都直接采用了 web 端 Modal 的实现方式,这些都是后续开发需要解决的问题。

Last

项目地址: github.com/leezng/iMus…

转载于:https://juejin.im/post/5af90c9df265da0b715661e8

一个基于 React 开发的PC端音乐App相关推荐

  1. 一个基于Android开发的简单的音乐播放器

    一个基于Android开发的简单的音乐播放器 记得当时老师让我们写因为播放器时,脑子一头雾水,网上杂七杂八的资料也很少有用,因此索性就自己写一篇,希望对有缘人有用. 因为有好多人问我要源码,所以附上g ...

  2. React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...

  3. Mdebug:基于React开发的移动web调试工具

    作者:thinkchen,腾讯 PCG 高级前端开发工程师 mdebug是腾讯新闻 TNTWEB 团队推出的基于React开发的新的web调试工具, 沉淀自腾讯新闻微信手 q 双插件多年的移动 web ...

  4. antd的联级选择器异步调用编辑回显_react-uplod-img 是一个基于 React antd组件的图片上传组件...

    react-uplod-img 是一个基于 React antd组件的图片上传组件 支持oss qiniu等服务端自定义获取签名,批量上传, 预览, 删除, 图片精确的尺寸限制 排序等功能 需要 re ...

  5. python 脚本梦幻西游_GitHub - U200915104/mhxy_fz: 一个基于计算机视觉开发的梦幻西游辅助脚本...

    mhxy_fz 一个基于计算机视觉开发的梦幻西游辅助脚本 (为了不让别有用心的人用软件牟利,虽然软件打包好了,但仅供有兴趣的人学习代码,不提供软件下载) 从有想法到弄出来花了两三天,很多知识都是现学的 ...

  6. 基于Springboot的智慧校园管理系统(PC端和APP端双端应用)

    这里写自定义目录标题 基于Springboot的智慧校园管理系统(PC端和APP端双端应用) 项目整体介绍 项目功能实现 项目源码查询 基于Springboot的智慧校园管理系统(PC端和APP端双端 ...

  7. 一个基于C#开发的Excel转Json工具

    Json在程序开发中是非常常用的数据格式,对于程序员来说,阅读和编辑Json都没有什么问题,但其他人就不是那么方便了.比如配置游戏数据:游戏角色.技能.道具的名称,策划书往往都是通过Excel配置,这 ...

  8. 一个基于C#开发的轻量级OCR文字识别开源工具

    在日常工作中是否经常碰到,需要从图片提取文字呢.这种情况,我们只能一个字一个字的去敲打,这样效率实在太慢了,这时候就需要用到文字识别工具. 所以今天给大家推荐一个基于C#开发的Windows OCR工 ...

  9. 从零搭建一个基于React+Nextjs的SSR网站(四):如何搭建服务器并部署Nextjs项目

    个人博客源码:https://github.com/shaotianyu/blog-front PS: 如果你有疑惑,可以给我留言,咱们一起解决它. 从零搭建一个基于React+Nextjs的SSR网 ...

最新文章

  1. zabbix 监控tomcat实例
  2. 用python简单处理图片(1):打开\显示\保存图像
  3. gj12-2 协程和异步io
  4. App设计灵感之十二组精美的机票预订App设计案例
  5. 面试官 | 如何在 Spring Boot 中进行参数校验?
  6. levedb 导入 mysql_[LevelDB] 数据库3:循序渐进 —— 操作接口
  7. python入门指南txt-pip安装和使用入门指南
  8. java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?
  9. spring的前后台数据传输。
  10. CAd常用的系统变量
  11. 学习信息安全技术心得
  12. KindEditor上传图片
  13. 深入学习OpenCV检测及分割图像的目标区域
  14. 计算机控制电子点火系控制电路分析,点火示波器的工作原理 用示波器诊断点火系故障方法...
  15. Win10如何关闭自动更新
  16. iconfont多色图标的使用方法
  17. Feburary——766.托普利茨矩阵
  18. 第十二,十三周第12个容器架构
  19. 习题4-5 换硬币 (20 分)
  20. 修改Docker容器端口

热门文章

  1. ImPan免费版 百度云网盘第三方不限速下载工具
  2. 云服务器加密机,如何选择云服务器密码机
  3. CSShack,CSS hack
  4. 视网膜New iPad与普通分辨率iPad页面的兼容处理
  5. Moodle网站档案的结构
  6. input 关闭输入法
  7. 嵌入式知识概要(1)
  8. 为什么不能使用 BigDecimal 的 equals 方法做等值比较
  9. linux chcon命令详解
  10. 输入缓冲区对程序的影响及解决方法(多种语言都会出现)