My Little World

Rekit

背景
一个独立功能通常需要多个文件组成 (组件,reducer,action,路由等文件)
代码模板很复杂 (reducer,action需要代码模板,实际上填写的逻辑只是一小部分)
重构极为困难
(需要改动的地方很多)
项目复杂后很难理解和维护(无法直观的看到他们之间的关系)

思路

Rekit:更好的代码导航

  1. 语义化的组织源代码文件
  2. 使用子 Tab来展示项目元素的各个部分
  3. 直观的显示和导航某个功能的所有依赖

Rekit: 一键生成项目元素(它是一个IDE)

  1. 直观的 UI 用于生成组件,action,reducer 等
  2. 模板代码遵循最佳实践(只需填入具体逻辑)
  3. 支持命令行方式创建项目元素

Rekit: 重构非常容易

  1. 右键菜单重命名或者删除某个项目元素
  2. 所有相关代码都会一次性重构从而保证一致性
  3. 详细的 log信息显示重构的完整修改

Rekit: 可视化的项目架构

  1. 项目总体架构的可视化图表
  2. 项目依赖关系的图表

Rekit 是如何工作的?

  1. 定义了基于feature 的可扩展文件夹结构(文件夹结构有一定规则,可以进行解析)
  2. 基于最佳实践生成代码和管理项目元素
  3. 提供工具和 IDE 确保代码和文件夹结构遵循最佳实践
    (减少工作量)

遵循最佳实践

1.以 feature 方式组织代码 (功能如果是必须的就放在已有模块底层实现,如果是原有功能增强的实现,则新拆分成功能模块)
2.拆分组件,action 和 reducer
3.拆分路由配置

通过代码自动生成保持一致性
1.文件夹结构一致性
2.文件名一致性
3.变量名一致性
4.代码逻辑的一致性

使用 React Router 管理路由授权

1.实现基础:React Router 的动态路由机制 (
不采用各个页面判断是否登录再redirect的方式跳转,路由配置(添加属性,那些可以在未登录下访问,或者哪些在未登录下不能访问)时就去动态监测当前用户是否登录,如果登录则全部路由生效;反之某些路由配置就不生效===>不生效处理,在解析router JSON数据时根据store中登录状态和路由配置的属性判断,未登录则跳转403,其子路由清空

2.区分受保护路由和公开路由
3.访问未授权路由时重定向到登录页面