{"id":13677425,"url":"https://github.com/MuYunyun/reactSPA","last_synced_at":"2025-04-29T11:30:44.465Z","repository":{"id":37877938,"uuid":"87954402","full_name":"MuYunyun/reactSPA","owner":"MuYunyun","description":"combination of react teconology stack","archived":false,"fork":false,"pushed_at":"2025-04-25T01:52:25.000Z","size":73269,"stargazers_count":934,"open_issues_count":7,"forks_count":272,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-25T02:52:15.142Z","etag":null,"topics":["antd","es6","fetch","form","mock","react","react-redux","react-router-redux","react-router-v4","redux","redux-thunk","webpack4"],"latest_commit_sha":null,"homepage":"http://muyunyun.cn/reactSPA","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MuYunyun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["http://muyunyun.cn/sponsor/"]}},"created_at":"2017-04-11T16:08:11.000Z","updated_at":"2025-04-16T01:57:25.000Z","dependencies_parsed_at":"2023-10-15T02:14:38.642Z","dependency_job_id":"cd650fdf-ef9f-4855-bd84-7092636aea5c","html_url":"https://github.com/MuYunyun/reactSPA","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuYunyun%2FreactSPA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuYunyun%2FreactSPA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuYunyun%2FreactSPA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuYunyun%2FreactSPA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MuYunyun","download_url":"https://codeload.github.com/MuYunyun/reactSPA/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251493703,"owners_count":21598154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antd","es6","fetch","form","mock","react","react-redux","react-router-redux","react-router-v4","redux","redux-thunk","webpack4"],"created_at":"2024-08-02T13:00:42.009Z","updated_at":"2025-04-29T11:30:44.060Z","avatar_url":"https://github.com/MuYunyun.png","language":"JavaScript","funding_links":["http://muyunyun.cn/sponsor/"],"categories":["JavaScript"],"sub_categories":[],"readme":"![GitHub views](https://raw.githubusercontent.com/MuYunyun/reactSPA/traffic/traffic-reactSPA/views.svg) ![Build Status](https://travis-ci.org/MuYunyun/reactSPA.svg?branch=master) ![LICENSE MIT](https://img.shields.io/npm/l/express.svg)\n\n该项目是对 React 技术栈以及前端工程化的相关实践。\n\n\u003e 愿景：沉淀出一套针对中台系统的开发相对完善的使用方案。\n\n[效果展示](https://muyunyun.github.io/reactSPA)，建议本地打开。\n\n- 部分模块展示：\n\n![](http://files.cnblogs.com/files/MuYunyun/reactSPA.gif)\n\n- redux 实现一个 todoList:\n\n![](http://files.cnblogs.com/files/MuYunyun/todoList.gif)\n\n### Usage\n\n```\n本地运行\nyarn install || npm install\nyarn start || npm start\n\n打包\nyarn build || npm run build\n\n发布\nyarn deploy || npm run deploy\n```\n\n### Tech Stack\n\n- 编译打包: Babel Webpack(4.x)\n- 热更新: webpack-dev-server\n- UI 库: React \u0026 React-Dom(^16.11.0)\n- UI 组件: Antd(3.x)\n- 路由: react-router(4.x)、react-router-redux\n- 状态管理: redux (TodoList: Graghql + Relay)\n- JS: ES6、ES7\n- 样式: less\n- Ajax: Fetch\n- 跨域: CORS\n- 代码校验: Eslint(Airbnb 规范)\n- 网关: [demo](https://github.com/MuYunyun/gateway)\n- 表单: [daForm](https://github.com/dwd-fe/daForm)\n\n### articles\n\n- [React 性能优化实践](https://github.com/MuYunyun/reactSPA/issues/54)\n- [压缩打包优化](https://github.com/MuYunyun/reactSPA/issues/53)\n- [css 模块化](https://github.com/MuYunyun/reactSPA/issues/52)\n- [使用 React 全家桶搭建一个后台管理系统](http://muyunyun.cn/posts/9bfbdbf4/)\n- [redux middleware 源码分析](http://muyunyun.cn/posts/7f9a92dc/)\n- [探寻 webpack 插件机制](https://github.com/MuYunyun/blog/issues/19)\n- [React16.x 特性剪辑](https://github.com/MuYunyun/blog/blob/master/BasicSkill/React周边/React16.x特性剪辑.md)\n\n### Module\n\n- 音乐模块\n  - 音乐列表\n- 工具模块\n  - 工资、房租、身体指数、年龄的智能计算器\n  - 富文本编辑器\n  - 待办事项\n- 画廊模块\n  - 图片瀑布流(撸了个插件 [jswaterfall](https://github.com/MuYunyun/waterfall))\n- 搜索模块\n  - 搜索引擎(集成百度、360、搜狗搜索)\n- 其它\n  - one for all 表单方案 —— [daForm](https://github.com/dwd-fe/daForm)\n\n### Project Structure\n\n```\n├── build.js                   项目打包后的文件\n├── config                     webpack配置文件\n│   ├──...\n│   ├──webpack.config.dev.js   开发环境配置(启动速度优化)\n│   ├──webpack.config.prod.js  生产环境配置(打包体积优化)\n├── node_modules               node模块目录\n├── public\n│   └──index.html\n├── scripts\n│   ├── build.js               打包项目文件\n│   ├── start.js               启动项目文件\n│   └── test.js                测试项目文件\n├── src\n│   ├── client\n│   │   ├── store              redux中的store\n│   │   ├── devTools.js        开发者工具\n│   ├── common                 核心目录\n│   │   ├── api                请求api层\n│   │   ├── actions            redux中的action\n│   │   ├── components         通用功能组件\n│   │   ├── container          通用样式组件\n│   │   ├── images\n│   │   ├── pages              页面模块\n│   │   ├── reducers           redux中的reducer\n│   │   ├── utils              工具类\n│   │   │   ├── index.js\n│   │   │   ├── config.js      通用配置\n│   │   │   ├── menu.js        菜单配置\n│   │   │   └── ajax.js        ajax模块\n│   │   └── routes.js          前端路由\n│   └── server                 服务端目录(日后用到)\n│       └── controller\n├── .gitignore\n├── package.json\n├── README.md\n└── yarn.lock\n```\n\n### todoList\n\n- [ ] 使用 suspense 替代 react-loadable\n- [ ] 状态管理库迁移至 graghql\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMuYunyun%2FreactSPA","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMuYunyun%2FreactSPA","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMuYunyun%2FreactSPA/lists"}