前言
使用 react
有一段时间了, 也想用 react
去写点什么,平时接触最多的就是 blog 了,因而乎借助 antd
这个 UI 框架设计出了一个极其简约风格的 spa
博客。
目的也是将 react
的生态圈的工具梳理一遍,后端则采用了 koa + sequelize + mysql
的技术选型(我司用的就是这个技术栈啦,因此笔者也用这个了)前端
博客介绍
- 先后台分离式开发(项目中也包含博客的后台管理系统),为了方便记录后端开发过程,笔者将后端也一块儿放在同个项目文件夹中。
- 博客样式几乎借助于 antd 这个优秀的 UI 框架,主打简约风格,是笔者借鉴了 antd 官方的风格所设计~
- 分出了几个分支便于学习和查看开发记录,相信这个项目会让刚接触 react 的伙伴学到一些的
- 博客地址 - 联系我能够 email gershonv@163.com | QQ 434358603 | 博客关于页面留言~
- 项目地址
-
预览地址mysql
- 用户名 admin/admin 最高权限,求小伙伴不要乱删数据,乱删数据其余伙伴会没什么数据看的。
- 给最高权限是为了让你们看到博主的权限。体验博客完整的功能。
- 后台访问路径 /admin
技术栈
实现功能
- [x] 主页 + 列表页 + 搜索页 + 后台增删改查文章等
- [x] 博客标签、分类
- [x] 评论与回复功能模块
- [x] 用户登陆注册,以及权限管理 (jwt + localStorage)
- [x] markdown 代码高亮
- [x] 锚点导航 回到顶部
- [x] 响应式开发
分支
为了方便查看开发记录笔者分了几个分支git
-
client-chore: 记录前端项目的构建过程github
- 配置 react + antd + less + babel-plugins-import
- 配置 redux + redux-thunk + redux-logger (开发和生产环境)
- 配置 装饰器 + axios 封装 + 路由配置(主博客路由 和 admin 管理系统)
-
server-chore: 记录后端项目的构建过程sql
- 配置 koa + koa-router + 中间件
- 项目结构划分(mvc结构)
- 配置 sequelize 以及数据库的设计
- ...
- client-markdown: 配置 markdown 语法高亮
- dev: 开发分支
效果
预览地址在这数据库
概览

评论功能与其余

响应式

后台管理

表结构

开启项目
前端
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
文件导入数据npm
cd server
npm i --registry=https://registry.npm.taobao.org
npm start
总结
从零开发我的博客,整个过程感觉就是不动手就不知道本身还有多少知识没了解到或者说好好运用到。麻雀虽小五脏俱全吧。redux
要点在于
-
前端
- 如何组织项目架构。合适的项目架构能够提升开发效率和更好的后期维护。
- 第二 router 4 如何封装才更好拓展,维护。这里部分借助了 rekit 目录结构
- 如何利用 react 新特性去组织你的代码
- 如何利用工具提升效率,装饰器,热加载,(redux、…)
- 固然权限的管理 jwt, 对 antd 的使用
-
后端
- koa 各种中间件使用
- 登陆注册权限,jwt 加密,处理权限的方式
- sequelize 的使用 模型定义 多表~
- 错误的统一处理,如何优雅的处理
- 项目结构如何搭建等等
源码地址:https://github.com/gershonv/react-blog
项目结构:

后台

项目地址
模块设计
- 博主 auth = 1 具有最高权限 文章、评论和回复的增删改查权限(root用户只能在注册后在数据库改权限)
- 普通用户 auth = 2 具有评论和回复的功能
- 注意 关于页面引用 articleId = -1 新建文章后自改库吧
PS : 以为不错的伙伴能够给个 star ~~~ 或者 fork 下来看看哦。若是有什么建议,也能够提 issue 哦