实战react技术栈+express前后端博客项目(1)-- 整体项目结构搭建
项目地址:https://github.com/Nealyang/R...
本想等项目做完再连载一波系列博客,随着开发的进行,也是的确遇到了不少坑,请教了不少人。遂想,何不一边记录踩坑,一边分享收获呢。分享当然是好的,
如果能做到集思广益,那岂不是更美。我们的口号是:坚决不会烂尾
本博客为连载代码博客同步更新博客,随着项目往后开发可能会遇到前面写的不合适的地方会再回头修改。如有不妥~欢迎兄弟们不啬赐教。谢谢!
项目目录
项目目录大致如下:
.
├── README.md //项目说明文件
├── app //前端源码文件夹
│ ├── components //前端组件文件夹
│ ├── configureStore.js //配置store文件
│ ├── containers //前端容器组件文件夹
│ ├── fetch //封装get/post请求文件夹
│ ├── index.js //APP输出文件
│ ├── lib //存放第三方引入文件文件夹
│ ├── reducers //reducer文件夹,包含actions、actionTypes
│ └── sagas //saga文件夹,异步action处理
├── config
│ └── config.js //总应用配置文件
├── db //存放数据库的文件夹
├── modules //存放mongoose model文件夹
│ └── user.js //存放user model文件
├── package.json
├── postcss.config.js //postcss配置文件
├── record //存放一些记录文件的文件夹
├── schemas //mongoose schema文件夹
│ └── users.js
├── server // server端源码文件夹
│ ├── api //server端 api接口文件夹
│ ├── index.js //server启动文件
│ ├── server.js //server文件
│ └── util.js //server端工具类文件
├── static //静态资源托管文件夹
│ └── favicon.ico
├── webpack.dev.js //开发环境下webpack配置文件
└── webpack.prod.js //生产环境下webpack配置文件
简单说下app里面react的项目结构。对于component,container这里不必多说了。saga用于对所有异步action的处理。
reducers里面存放了container对应所有的reducer、action、actionTypes。
比如:
const initialState = {};
export const actionTypes = {
HOME_LOAD:'HOME_LOAD',
};
export function reducer(state=initialState,action) {
switch (action.type){
default:
return state;
}
}
export const action = {
getArticleList:function () {
return actionTypes.HOME_LOAD
}
};
对于这种写法,可以参照我上一篇大众点评demo关于react项目结构的说明.
state设计
曾经看过一篇文章,如何合理的设计state,看完以后的确受益匪浅。但是。。。。我擦,有必要这样子嘛~
所以,脑地瓜笨笨的我,这个demo,我还是打算粗略的设计下就好。
state
已经完成部分 state 结构如下
这里兄弟们不要急,后面博客会写到如何构建的。
从这个state状态树中,我们也能够知道下一篇,我们要说的,前端react技术栈的等等配置。
项目实现步骤系列博客
- 实战react技术栈+express前后端博客项目(0)-- 预热一波
- 实战react技术栈+express前后端博客项目(1)-- 整体项目结构搭建、state状态树设计
- 实战react技术栈+express前后端博客项目(2)-- 前端react-xxx、路由配置
- 实战react技术栈+express前后端博客项目(3)-- 后端路由、代理以及静态资源托管等其他配置说明
- 实战react技术栈+express前后端博客项目(4)-- 博客首页代码编写以及redux-saga组织
- 实战react技术栈+express前后端博客项目(5)-- 前后端实现登录功能
- 实战react技术栈+express前后端博客项目(6)-- 使用session实现免登陆+管理后台权限验证
- 实战react技术栈+express前后端博客项目(7)-- 前端管理界面用户查看功能+后端对应接口开发
- 实战react技术栈+express前后端博客项目(8)-- 前端管理界面标签管理功能+后端对应接口开发
- 实战react技术栈+express前后端博客项目(9)-- 前端管理界面标签管理功能+后端对应接口开发
- 实战react技术栈+express前后端博客项目(10)-- 前端管理界面发表文章功能
- 实战react技术栈+express前后端博客项目(11)-- 后端接口对应文章部分的增删改查
- 实战react技术栈+express前后端博客项目(12)-- 前端对于发文部分的完善(增删改查、分页等)
- 实战react技术栈+express前后端博客项目(13)-- 前端对于发文部分的完善(增删改查等)
- 实战react技术栈+express前后端博客项目(14)-- 内容详情页以及阅读数的展示
- 实战react技术栈+express前后端博客项目(15)-- 博客添加评论功能以及对应后端实现
- 实战react技术栈+express前后端博客项目(16)-- pm2 的使用说明
- 实战react技术栈+express前后端博客项目(17)-- 收工
交流
倘若有哪里说的不是很明白,或者有什么需要与我交流,欢迎各位提issue。或者加群联系我~
扫码关注我的个人微信公众号,直接回复,必有回应。分享更多原创文章。点击交流学习加我微信、qq群。一起学习,一起进步
欢迎兄弟们加入:
Node.js技术交流群:209530601
React技术栈:398240621
前端技术杂谈:604953717 (新建)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。