React-Music 全家桶项目

一、简介

该项目是基于React全家桶开发的一个音乐播放器,技术栈采用:Webpack + React + React-redux + React-router + Node + Sass + Es6 + Localstorage + Css3,基本音乐API使用http-proxy酷狗音乐的,在此感谢酷狗音乐!项目涉及的知识点非常广泛,基于react全家桶技术都有使用,独立开发,精品之作,具有很好的参考价值!

1、项目依赖基本核心版本:

react: "^15.6.1",
react-dom: "^15.6.1",
react-router: "^4.2.0",
react-router-dom: "^4.2.2"
react-redux: "^5.0.6",
redux: "^3.7.2",
webpack: "^3.5.5",
webpack-dev-server: "^2.7.1"

2、该音乐播放器基本功能:

展示最新的推荐歌单、歌单、排行榜、歌手;
音乐的播放、暂停、上一首、下一首、删除当前播放列表功能;
基本搜索功能;
喜欢音乐加入收藏列表;
模拟登录功能(随便输入用户名,密码即可);

3、项目Github地址: react-music

4、项目基本预览,直接移步 github 吧!

二、项目结构

├── src(主目录)              
│ ├── actions(Redux action)          
│ │ ├── xxx.js
│ │ └── ...
│ ├── components(木偶组件目录)        
│ │ ├── Artist
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Common
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Home
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── New
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Play
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Rank
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Search
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ └── User
│ │ ├── xxx.js
│ │ └── ...
│ ├── constants(Constant常量)
│ │ └── index.js
│ ├── reducers(Redux reducer)
│ │ ├── index.js
│ │ └── ...
│ ├── containers(智能组件目录)
│ │ ├── Artist
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Home
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── New
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Play
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Rank
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ ├── Search
│ │ │ ├── xxx.js
│ │ │ └── ...
│ │ └── User
│ │ ├── xxx.js
│ │ └── ...
│ ├── routes(路由)
│ │ └── index.js
│ ├── static(静态目录)
│ │ ├── css
│ │ │ ├── xxx.scss
│ │ │ └── ...
│ │ └── images
│ │ └── ...
│ ├── store(Redux store)
│ │ └── configureStore.js
│ ├── util(工具目录)
│ │ ├── xxx.js
│ │ └── ...
├── templates(模板)
│ └── index.html
├── dist(打包目录)
│ ├── css
│ │ └── xxx.css
│ ├── js
│ │ ├── xxx.js
│ │ └── ...
│ ├── favicon.ico
│ └── index.html
├── node_modules
│ └── ...
├── README.md
├── app.js(Express启动配置)
├── server.js(主服务配置)         
├── webpack.config.js(基本配置)
├── webpack.prod.config.js(生产环境配置)
├── yarn.lock
└── package.json

screenshot与images.md为截图说明文件,是为了方便查看,与本项目无关!

三、如何执行

1、将项目克隆到本地,cd 到 react-music

git clone git@github.com:chenjun1127/react-music.git
cd react-music

2、安装依赖

npm install or yarn install

3、执行

npm start or yarn start
// npm run build(打包)

4、打开浏览器浏览 http://localhost:3000/

四、项目总结

整体项目实现了一个基本播放器应有的功能,但个别功能还有待完善,比如收藏列表本地持续化存储、登录注册未做真正限制等。觉得项目不错的,可以给个Star,谢谢!

Tips:在npm install or yarn install 的时候,请确保网络良好,如个别依赖安装不了,请设置淘宝镜像为安装源;

如有问题:请联系QQ:402074940

React-music 全家桶项目的更多相关文章

  1. react-music React全家桶项目,精品之作!

    React-Music 全家桶项目,精品之作! 一.简介 该项目是基于React全家桶开发的一个音乐播放器,技术栈采用:Webpack + React + React-redux + React-ro ...

  2. 基于 vite 创建 vue3 全家桶项目(vite + vue3 + tsx + pinia)

    vite 最近非常火,它是 vue 作者尤大神发布前端构建工具,底层基于 Rollup,无论是启动速度还是热加载速度都非常快.vite 随 vue3 正式版一起发布,刚开始的时候与 vue 绑定在一起 ...

  3. 已配置好的vue全家桶项目router,vuex,api,axios,vue-ls,async/await,less下载即使用

    github 地址: https://github.com/liangfengbo/vue-cli-project 点击进入 vue-cli-project 已构建配置好的vuejs全家桶项目,统一管 ...

  4. 【React自制全家桶】六、React性能优化(持续更新总结)

    一.通过虚拟DOM来提升性能(自动) 底层讲解见[React自制全家桶]二.分析React的虚拟DOM和Diff算法   二.将多次setState合并为一次执行(自动) 底层讲解见[React自制全 ...

  5. vue3 vite2 封装 SVG 图标组件 - 基于 vite 创建 vue3 全家桶项目续篇

    在<基于 vite 创建 vue3 全家桶>一文整合了 Element Plus,并将 Element Plus 中提供的图标进行全局注册,这样可以很方便的延续 Element UI 的风 ...

  6. 开箱即用 yyg-cli(脚手架工具):快速创建 vue3 组件库和vue3 全家桶项目

    1 yyg-cli 是什么 yyg-cli 是优雅哥开发的快速创建 vue3 项目的脚手架.在 npm 上发布了两个月,11月1日进行了大升级,发布 1.1.0 版本:支持创建 vue3 全家桶项目和 ...

  7. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目

    前言 一.React是Facebook推出的一个前端框架,之前被用于著名的社交媒体Instagram中,后来由于取得了不错的反响,于是Facebook决定将其开源.出身名门的React也不负众望,成功 ...

  8. 【React自制全家桶】九、Redux入手

    一.React项目中为什么要用Redux 上图: 左图当使用纯React开发稍微大点的项目,因为React数据是瀑布式的,只能通过父子组件传递数据,所以实现关系不大的两React的组件之间的数据传递就 ...

  9. 【React自制全家桶】七、React实现ajax请求以及本地数据mock

    一.下载axios插件 yarn add axios 二.React的ajax请求代码如何放置 建议放置在生命周期函数之componentDidMount()中 三.ajax之get请求 axios. ...

随机推荐

  1. Codeforces Round #245 (Div. 1) B. Working out dp

    题目链接: http://codeforces.com/contest/429/problem/B B. Working out time limit per test2 secondsmemory ...

  2. Navicat for mysql导入.sql数据库大小受限制

    把导入单个表的最大限制调一下就行(在my.ini里面就算改了max_allowed_packet也不一定行,因为Navicat貌似并不调用,实际他有自己的一套默认配置,所以需要在Navicat上调整) ...

  3. nodepad++ 格式化xml插件

    1.用插件管理器安装xmltools插件 2.使用如下菜单格式化xml: 所有插件下载地址: http://sourceforge.net/projects/npp-plugins/files/

  4. SQL之case when then用法详解

    case具有两种格式.简单case函数和case搜索函数. <span style="font-size:14px;">--简单case函数 case sex when ...

  5. 注解实现IOC和DI

    1.组件扫描 Spring3.0后为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component.@Service.@Controller.@Repository注解的类,并把这些类纳 ...

  6. phpcms 发布时间 更新 时间

  7. linux普通用户被内存被限制的问题

    把应用从root用户迁移到普通用户test,由于普通用户会被限制最大的进程数,当进程数占满后出现了下面的错误 /bin/bash: Resource temporarily unavailable. ...

  8. Java 线程池详解

    Executors创建线程池 Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(int nThreads),但 ...

  9. Java对象空间分配流程

    对象空间分配流程如下:   针对这个流程,分别解释一下每一个选项的使用场景. 栈上分配: 栈上分配的基础在于逃逸分析,逃逸分析可以得到三种对象的逃逸状态. 全局逃逸:一个对象的引用逃出了方法或者线程. ...

  10. struts 普通的action

    1.使用普通方式javaBean作为Action动作类,不需要继承任何父类,也不需要实现接口. l 方法一定是public公用的, l 返回值是字符串用来决定跳转到哪个视图 l 不需要参数 l 方法名 ...