Skip to content
风起
风起

组合式API与函数式编程

函数式编程在前端的适用性分析

1. 函数式编程的核心

  • 组合纯函数 通过小的纯函数组合构建复杂逻辑
  • 剥离副作用 将副作用外置或延迟执行,保持组合性

2. 函数式编程的价值评估

函数式编程的价值与业务中纯函数占比成正比:

  • 纯函数占比高 → 函数式编程价值高
  • 纯函数占比低 → 函数式编程性价比不高

3. 前端开发的现实情况

前端开发中常见的操作

  1. 状态管理 副作用为主
  2. 请求接口 副作用为主
  3. 操作DOM 副作用为主
  4. 纯数据计算 占比较少

4. 结论

前端多数业务以副作用操作为主,纯函数占比低,因此函数式编程在前端的性价比不高。

组合式API的优势

  • 提供了响应式的状态管理
  • 通过hooks模式实现逻辑复用
  • 在副作用密集的前端场景中更实用

组合式API与函数式编程的关系

相同的目标不同的实现:

1. 相似之处(目标层面)

  • 都强调模块化可组合性
  • 都倾向于小而专的功能单元
  • 都具备功能单元的可预测性
  • 都关注关注点分离

2. 区别之处(实现层面)

  • 组合方式不同
    • 函数式:数学意义的函数组合(f(g(h(x))))
    • 组合式API:逻辑模块的拼装组合
  • 可预测性不同
    • 函数式:引用透明,无副作用的数学可预测性
    • 组合式API:包含副作用,状态行为的可预测性
  • 副作用处理
    • 函数式:副作用外置或延迟执行
    • 组合式API:副作用内置,通过响应式系统管理

总结

  • 组合式API更准确地说是模块化编程在响应式系统中的实现,与函数式编程目标相同:都是为了模块化组合。
  • 组合式API更能适应副作用密集的前端现实场景,实现层面提供了更务实的解决方案。