封面
封面

Vue3-组合式函数

无状态的逻辑

要想了解组合式函数,就要先了解无状态函数。无状态函数是函数的输出只跟输入有关,并且无论都多少次,只要输入恒定不变,输出也是唯一的值。
类似的有:
  • 数字求两数之合
  • 字符串处理成大写
  • 把日期格式化成想要的格式

无状态函数和纯函数的区别

纯函数是无状态函数的子集。
先看纯函数的特性
  • 确定性:相同的输入,总会有对应的相同的输出
  • 无副作用:执行函数时,不会影响外部状态,也不依赖于外部状态。(例如,不修改全局状态,不进行额外的输入输出)
无状态函数额外的特征
  • 它可能执行一些外部环境有影响的操作,但是这些操作不影响函数的计算。这就是他有额外的作用。(例如,发送监控日志,报告等请求。)
  • 他可能依赖于外部状态。但是函数的输出可能不完全由输入决定。(返回一个随机数)
通常无状态函数的结果是可预测的,常用于工具函数库等使用场景,比如lodash,dayjs。

组合式函数

组合式函数通常是由:
  • 无状态逻辑函数(提供可被组合调用的工具函数)
  • 有状态逻辑函数(抽出状态逻辑,提供可复用的状态管理函数)
(未更完)