Tho*_*dez 3 javascript computer-science reactjs
我一直在阅读 Dan Abramov 的文章《react as a render ui》,并看到了术语“命令逃生舱口”。
我的问题是这是什么?有人可以举一个例子吗?什么时候有用?
该术语指的是命令式编程和函数式编程的组合。请参阅函数式编程语言和命令式编程语言有什么区别?一些好的答案。
使用纯函数式方法实现某些解决方案可能很困难,但如果您主要使用函数式编程和命令式编程的某些元素,则可以接近实现。那些不纯粹是功能性的元素在链接的文章中被称为“必要的逃生舱口”。
在纯函数式编程中,方法不会修改系统的状态,并且在给定相同的输入时它们始终返回相同的输出。一个采用“Thomas”这样的名称并始终返回“Hello Thomas”的函数符合该描述。采用“Thomas”等名称、对用户进行地理定位并返回“Howdy Thomas”或“G'day Thomas”等区域问候语的函数不符合该描述。
可以重写第二个函数以接受两个参数:名称和位置,然后始终根据输入返回相同的结果,从而使其遵循函数范式。现在想象一下问候语是基于日期、月份、星期几、一天中的时间、地区和性别。在函数式编程中,您需要将该状态打包到传递给函数的某种数据结构中。实际上,调用 getGreeting( 'Thomas', { date: 5, Month: 'Jan', dayOfWeek: 'Monday', etc. }) 而不是 getGreeting( 'Thomas' ) 并依赖于返回的系统状态其他函数或在全局变量中访问。
一个更复杂的示例是调用需要不同时间才能完成的异步子例程。假设每 2 秒获取一次股票价格,需要 1 到 5 秒才能完成。任务完成后,仅当这是最近发送的数据而不是最近接收的数据时,才应更新 UI。在调用该方法时,您不知道 UI 是否会根据下一个股票价格请求返回之前进行更新,因此这对于纯函数式编程来说会很棘手。不过,您可以使用一些命令式逃生舱口。如果您将最近呈现的请求发送的时间存储在全局变量中,您可以轻松决定何时使用返回的股票价格来更新 UI,以及何时丢弃缓慢返回的请求。
| 归档时间: |
|
| 查看次数: |
2302 次 |
| 最近记录: |