React 后台管理系统
后台管理系统2.1、技术栈测试接口环境:nodejs前端:react.jsredux react-redux redux-thunkreact-router-dom@5styled-components/sass(node-sass)ui组件库 ant-design Ant Design - 一套企业级 UI 设计语言和 React 组件库axios/fetchsessionStorage/loc
后台管理系统
2.1、技术栈
测试接口环境:nodejs
前端:
react.js
redux react-redux redux-thunk
react-router-dom@5
styled-components/sass(node-sass)
ui组件库 ant-design Ant Design - 一套企业级 UI 设计语言和 React 组件库
axios/fetch
sessionStorage/localStorage/cookie
webpack配置(装饰器配置和代理的设置等等)[create-react-app]
npm i -D http-proxy-middleware @babel/plugin-proposal-decorators redux-devtools-extension customize-cra react-app-rewired
npm i -S redux react-redux redux-thunk styled-components react-router-dom@5 react-transition-group axios prop-types immutable redux-immutable
----------------------------------------
//这是mock
npm i -g json-server
npm i -S antd
yarn add antd
一定要先安装
npm i -D babel-plugin-import
yarn add babel-plugin-import -dev
不想按需的话
直接引用
全局做 [国际化处理]
日历组件需要单速处理
日历默认是英文
[快速上手]
yarn add moment
1.4、登录
1.4.1、定义登录路由
拆出去写一个配置式路由
前
后
配置式 静态路由表
登录
登录验证
拆出来
登录请求
message第二个参数是秒数
登录错误防抖
界面布局
退出登录
Modal对话框
子路由
后台防翻墙
自定义router
引入
BUG--左侧菜单高亮--刷新页面跳回首页
先在最上面解构出来location
看官方Api文档改成
面包屑导航
cssinjs
表格
添加用户 模态框
模态框 -表单
方案1 隐藏模态框自己的
方案2 使用模态框的按钮
用表单的自定义hook,使用表单的实例
useForm完成表单实例获取
拆出去
总结: form表单 父传子 透传
Bug表单内容清空
初始化
监听模态框的显示和隐藏
上传头像
记得把这个截图发给后端
富文本编辑器 braft-editor
这个优点在于 数据修改方便
因为不是操作Dom的
react专用富文本 braft-editor
富文本要传html
官方文档
手册
富文本加边框
拆出去代理
拆出 表单上传的服务器路径
前
后
表单项验证通过后进行网络请求
post要记得在url后面传userData
点击添加发送网络请求: 要做防抖!!
BUG富文本再次点开不重置不清空
列表分页
useEffect需要回收不能有返回值,但是可以写自执行函数,自执行函数没有返回值,自执行函数内可以写async和await
列表修改(路由版)
默认不是严格匹配,所以写在上面
不是直接渲染的组件,需要使用useHistory
Bug子路由高亮
封装面包屑跳转
用户修改表单
重现按钮
先删掉初始值设置
改完记得跳转回列表页
BUG,在 第五页 修改完后 要 回到第五页 而不是第一页
在第n页点击修改,跳转到修改页,改完后点击提交修改,跳回到第n页
可以通过地址栏的? seach字符串,或状态,或stirage,或隐式传参
BUG想要F5刷新变成第一页
所以找到一个刷新丢失 的地方存标识 布尔值
后端中间件,完成接口安全!!!!!!!!!!!!!!!
接口安全: 就是登录时 复制了 你网络请求的接口,退出登录后再在地址栏粘贴访问
不让他访问,是后端做的
要在头信息携带token
然后再通过响应头把新的token返回来
登陆以外的都要携带token
响应要获取最新的
取消网络请求 防抖
通过数组把请求地址存进去
数组内只要存在就阻止请求
权限--[ rbac ] 基于角色的权限控制 //动态创建路由组件
动态渲染菜单权限
然后调用函数()
{ creatMenuItem() }
路由权限
路由本身就是动态渲染的所以直接用组件判断就行
数据不是写死的
前台只有这个
其实后台返回的是这个
就是对象合并
后台返回的带标识标记
前台提供组件页面引用
然后合并
按钮权限
1.单页面版(不推荐)
要改一个地方让所有的都变
2.封装公共组件方案
3.高阶组件方案
百度的Echarts -或者- 阿里的AntV
然后在示例里面找,然后复制粘贴
在配置项里按照说明改
推荐用插件!!!
把示例里的代码全c过来,写在return里{}
react-saga
更多推荐
所有评论(0)