复杂项目
业务的复杂性:
- 交互的复杂性
- 数据结构和状态的复杂性,例如级联选择器需要遍历树结构,还有一些需要链表、栈、队列等
- 多项目依赖,工程的复杂性
- 性能优化
流程的复杂性
- git flow
- lint 工具
- 单元测试
- commit信息
- Code Review
- CI/CD
开发一个编辑器
例如低代码的编辑器
编辑器的整体状态
增加和删除
属性渲染成表单
实时的反馈
插件化
* 拖拽
* 快捷键
* 右键菜单
为什么要开发UI组件库?因为多个项目都会用到组件库。
开发一个UI组件库
开发一个编辑器
核心技术
- 玩的是一个大状态
- 拖动到哪的状态
- 当前选中的状态
- 代码生成
从上图可以看出,整个数据流是闭环的,是通过数据来驱动视图的。
- 要有一个管理全局状态的store
- 将store渲染到视图上
- 对视图上的操作(比如选中某个组件,或者拖动某个组件),将该组件所对应的属性渲染成表单
- 操作表单,发射统