前言
使用 react
有一段时间了, 也想用 react
去写点什么,平时接触最多的就是 blog 了,因而乎借助 antd
这个 UI 框架设计出了一个极其简约风格的 spa
博客。 目的也是将 react
的生态圈的工具梳理一遍,后端则采用了 koa + sequelize + mysql
的技术选型(我司用的就是这个技术栈啦,因此笔者也用这个了)前端
版本更新记录
- 登陆功能:用户名/邮箱 都可登陆!
- 我的信息:用户的相关信息都可修改
- 邮件功能:评论回复(绑定了邮箱的帐户)若是有更新 都会自动经过邮件通知!
更新时间 2019-04-25 相关信息能够查看 email-notice 这个分支node
博客介绍
-
先后台分离式开发(项目中也包含博客的后台管理系统),为了方便记录后端开发过程,笔者将后端也一块儿放在同个项目文件夹中。mysql
-
博客样式几乎借助于 antd 这个优秀的 UI 框架,主打简约风格,是笔者借鉴了 antd 官方的风格所设计。react
-
分出了几个分支便于学习和查看开发记录,相信这个项目会让刚接触 react 的伙伴学到一些的ios
-
博客地址 - 联系我能够 email gershonv@163.com | QQ 434358603 | 博客关于页面留言~git
-
项目地址github
-
预览地址sql
- 用户名 admin/admin 最高权限,求小伙伴不要乱删数据,乱删数据其余伙伴会没什么数据看的。
- 给最高权限是为了让你们看到博主的权限。体验博客完整的功能。
- 后台访问路径 /admin
实现功能
技术栈
- 前端 (基于
create-react-app eject
后的配置)
- react v16.8.1
- redux redux-thunk
- react-router4
- axios
- marked highlight.js
- 后端 (自构建后台项目)
- koa2 + koa-router
- sequelize + mysql
- jwt + bcrypt
- nodemailer
分支
为了方便查看开发记录笔者分了几个分支数据库
- client-chore: 记录前端项目的构建过程
- 配置 react + antd + less + babel-plugins-import
- 配置 redux + redux-thunk + redux-logger (开发和生产环境)
- 配置 装饰器 + axios 封装 + 路由配置(主博客路由 和 admin 管理系统)
- server-chore: 记录后端项目的构建过程
- 配置 koa + koa-router + 中间件
- 项目结构划分(mvc 结构)
- 配置 sequelize 以及数据库的设计
- ...
- client-markdown: 配置 markdown 语法高亮
- dev: 开发分支
- email-notice: 邮件推送服务
效果
预览地址在这npm
概览
评论功能与其余
响应式
后台管理
表结构
开启项目
前端
git clone https://github.com/gershonv/react-blog.git
cd react-blog
npm i --registry=https://registry.npm.taobao.org
npm start
复制代码
后端
建立一个 blogdev 的 mysql 数据库,修改 server/config/db.js
去链接你的数据库。 运行 server/config/blogdev.sql
文件导入数据
cd server
npm i --registry=https://registry.npm.taobao.org
npm start
复制代码
总结
从零开发我的博客,整个过程感觉就是不动手就不知道本身还有多少知识没了解到或者说好好运用到。麻雀虽小五脏俱全吧。
要点在于
- 前端
- 如何组织项目架构。合适的项目架构能够提升开发效率和更好的后期维护。
- 第二 router 4 如何封装才更好拓展,维护。这里部分借助了 rekit 目录结构
- 如何利用 react 新特性去组织你的代码
- 如何利用工具提升效率,装饰器,热加载,(redux、…)
- 固然权限的管理 jwt, 对 antd 的使用
- 后端
- koa 各种中间件使用
- 登陆注册权限,jwt 加密,处理权限的方式
- sequelize 的使用 模型定义 多表~
- 错误的统一处理,如何优雅的处理
- 项目结构如何搭建等等
源码地址:github.com/gershonv/re…
项目结构:
后台
项目地址
模块设计
- 博主 auth = 1 具有最高权限 文章、评论和回复的增删改查权限(root 用户只能在注册后在数据库改权限)
- 普通用户 auth = 2 具有评论和回复的功能
- 注意 关于页面引用 articleId = -1 新建文章后自改库吧
PS : 以为不错的伙伴能够给个 star ~~~ 或者 fork 下来看看哦。若是有什么建议,也能够提 issue 哦