[学习] 空值的检查在哪里比较合适?

3 阅读1分钟

vue3:如果你有一个业务组件使用自定义的hook, 分析一下那么空值的检查在哪里比较合适?

分析:

从职责划分角度:

  • 组件负责 UI 交互和用户输入处理

  • Hook 负责业务逻辑和状态管理

  • 空值检查属于输入验证,应该在组件层处理

从复用性角度:

  • Hook 可能被多个组件使用

  • 不同组件可能有不同的空值处理逻辑

  • 在 Hook 中处理会限制其灵活性

从状态管理角度:

  • resetSearch 是 Hook 提供的功能

  • 组件应该决定何时调用这个功能

  • Hook 不应该假设调用者的意图

从代码组织角度:

  • 输入验证应该靠近输入源

  • 组件是用户输入的入口

  • 在组件层处理更符合数据流向

结论:

建议在组件层处理空值检查,hook层提供重置的能力

  1. 职责更清晰:
  • 组件负责输入验证
  • Hook 负责搜索逻辑
  • 各司其职
  1. 更易维护:
  • 输入验证逻辑集中在一处

  • 更容易修改验证规则

  • 代码更清晰

  1. 更灵活:
  • 不同组件可以有不同的验证逻辑
  • Hook 更容易复用
  • 不限制使用场景
  1. 更符合最佳实践:
  • 输入验证靠近输入源
  • 关注点分离
  • 代码组织更合理