# 一千五百行的组件


在很长的一段时间内,我仍然在 SPA 开发时没有去拆分组件,而是将所有的逻辑代码写在了同一个组件之中。因为这些 UI 和代码没有复用的需要,写在一个组件中还省去了组件通信的麻烦。所有的变量都近乎是全局变量,写起来不要太简单。但很快,我就吃到了苦果。变量和函数越来越多,命名越来越长,超过一千五百行的组件代码,让我在来回的滚动,即使是一直用 Ctrl+F,查找代码块的位置都花了不少时间。

# 拆分组件的好处与困难


于是我终于决定对其拆分。想了一下拆分有哪些好处:

  • 代码高内聚低耦合,模块化更明显,每个组件只需做好分类之事,debug 更快。
  • 单个文件代码的行数大大减少,省去了很多在代码块之间定位,查找的麻烦。
  • 从次以后搭建起模块框架,后续的开发能轻松不少。

那么困难呢?也有不少:

  • 组件与组件之间额外通信的开销
  • 由于从前的代码都是使用的选项式 API,更换成组合式 API 需要大量工作。
  • 以前的代码已经有很深的耦合,解耦需要花很多时间精力。
  • 重构往往会引发屎山崩溃,产生不可预知的后果。

# 决定

尽管困难重重,但我还是选择了重构代码,将组件慢慢进行拆分,代码进行重写,并重新进行测试,目前还只完成了一小部分,但为未来打下了更好的基础,使在线笔记这个项目能够更长远地生存下去。