vue3:如果你有一个业务组件使用自定义的hook, 分析一下那么空值的检查在哪里比较合适?
分析:
从职责划分角度:
-
组件负责 UI 交互和用户输入处理
-
Hook 负责业务逻辑和状态管理
-
空值检查属于输入验证,应该在组件层处理
从复用性角度:
-
Hook 可能被多个组件使用
-
不同组件可能有不同的空值处理逻辑
-
在 Hook 中处理会限制其灵活性
从状态管理角度:
-
resetSearch 是 Hook 提供的功能
-
组件应该决定何时调用这个功能
-
Hook 不应该假设调用者的意图
从代码组织角度:
-
输入验证应该靠近输入源
-
组件是用户输入的入口
-
在组件层处理更符合数据流向
结论:
建议在组件层处理空值检查,hook层提供重置的能力
- 职责更清晰:
- 组件负责输入验证
- Hook 负责搜索逻辑
- 各司其职
- 更易维护:
-
输入验证逻辑集中在一处
-
更容易修改验证规则
-
代码更清晰
- 更灵活:
- 不同组件可以有不同的验证逻辑
- Hook 更容易复用
- 不限制使用场景
- 更符合最佳实践:
- 输入验证靠近输入源
- 关注点分离
- 代码组织更合理