React中的纯函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React中的纯函数相关的知识,希望对你有一定的参考价值。
参考技术A 纯函数 Pure Function
定义: 一个函数的返回结果只依赖于它的参数,并且在执行的过程中没有副作用,我们就把该函数称作纯函数。
特点
1. 函数的返回结果只依赖于它的参数。
如上:foo不是一个纯函数,因为它的结果还依赖于外部变量a
2. 函数执行过程里面没有副作用。
函数的执行对外部的对象obj产生了影响,即副作用,因为它修改了外部传来的对象,所以它是不纯的,因为影响了外部的对象的属性obj.x。
如果是上面这样就不是副作用,因为它更改的是内部的变量,外部根本观察不到
什么是副作用
除了修改外部的变量,一个函数在执行过程中还有很多方式产生外部可观察的变化,比如说调用 DOM API 修改页面,或者你发送了 Ajax 请求,还有调用 window.reload 刷新浏览器,甚至是 console.log 往控制台打印数据也是副作用。
3.没有额外的状态依赖
指方法内的状态都只在方法的生命周期内存活,这意味着不能在方法内使用共享变量,因为会带来不可知因素。
为什么需要纯函数?
因为纯函数非常“靠谱”,执行一个纯函数你不用担心它会干什么坏事,它不会产生不可预料的行为,也不会对外部产生影响。不管何时何地,你给它什么它就会乖乖地吐出什么。如果你的应用程序大多数函数都是由纯函数组成,那么你的程序测试、调试起来会非常方便。
以上是关于React中的纯函数的主要内容,如果未能解决你的问题,请参考以下文章
通用视图中的 request.user 和 django 中的纯函数
React:在现有状态转换期间无法更新(例如在 `render` 中)。渲染方法应该是 props 和 state 的纯函数