# react项目经验总结

# 项目工程化

  • 目的:提高开发效率,降低维护成本
  • 项目架构设计:项目主页,登陆页面,通用页面,三个是平级关系,项目主页左侧是菜单,右侧动态渲染数据需要周密设计,项目结构定义不好,会加大开发成本
  • 目录结构设计:
    • 提取公共配置放到config,置于为外层,菜单,字典
    • api调用封装,api目录,mock封装,component组件封装,styles
  • 制定项目开发规范,eslint规范
  • 模块化,组件化,模块化是更加细小的颗粒度,组件化是更粗一点,表格是一个组件,表格中的分页是模块
  • 前后端接口规范,前端要做错误拦截,loading处理,公共机制
  • 性能优化,自动化部署(压缩,合并,打包)流水化处理
  • 项目的公共机制部分: 架构设计,目录定义,路由封装,axios封装,错误拦截,loading封装, 表单封装,表格封装,分页封装,header/footer封装,菜单封装,api封装, 公共机制,公共样式,mock封装,noData封装
  • 业务菜单,右面的标准页面一般包括查询表单,下面表格,开发时就可以只关心核心数据了
  • 表单封装,下拉框,时间框,文本框,checkbox框,按钮等等常用组件框,提取公共部分,只需关注核心不同点,就可以满足大部分的业务
  • 表单的封装,一块是纯粹的组件,还有一块是固定的业务组件,封装好以后,需要传递一个结构化的数据formList,一个handleFilter函数,接收baseForm传出来的数据,再引用一下baseForm即可,赋值,初始化值,查询,重置都封装好了
  • 表单查询的结果进行封装,requestList专门对请求列表使用
  • axios统一的请求拦截,不会处理业务代码,对状态值进行拦截判断,在这里可以对loading做统一的处理

# 项目架构分析

  • 无服务端,利用mockServer实现前端json交互,只需关注前端开发即可
  • 项目的核心框架库: React16, Router4.0, Redux
  • 项目的中间件/插件: Axios, Map, Echarts, AntD

# 通用型强,可扩展性高的后台管理系统

  • react全家桶

    • React基础知识
    • React生命周期
    • React SPA页面语法讲解
    • React-Router4.0的基础知识
    • 详细介绍路由匹配
    • 使用hashHistory
    • 在项目中运用动态路由
    • Redux 基础知识
    • Redux 框架集成应用
  • AntD UI组件

    • 表格列头单选/复选功能封装
    • AntD栅格/按钮/表单讲解
    • 基于AntD弹框组件封装
    • 基于AntD表格组件的封装
    • toast组件
    • notice组件
    • 轮播组件
    • 选项卡组件
  • 项目公共机制

    • axios封装/表格封装
    • 公共组件Loading封装/分页封装
    • 错误拦截/菜单封装
    • 路由处理
    • 日期/金额/手机号格式化
    • 权限封装/表单封装
    • Mock集成/JSONP封装
    • 天气调用
  • 可复用功能

    • 后台系统整体架构设计
    • 请求插件封装设计
    • 登录页面总体布局和登录表单设计
    • 首页卡片实现
    • 基于Echart实现常用图表功能
    • 基于百度Map SDK实现地图可视化常用功能
    • 介绍图表组件的按需加载
    • 车辆订单基础查询功能实现
    • 用户列表功能实现
    • 车辆列表基础功能实现
    • 菜单渲染/权限控制
    • 角色列表/创建角色/删除角色功能实现