react的纯函数

2019-11-13  本文已影响0人  香喷喷啦啦啦66

纯函数三大特点:

1.函数的返回结果只依赖它的参数
如下:

  let a = 1
  let func = (a) => a+1
  fun(a)

反例:

let a =1
let func = (b) => a+b
fun(2)

上面就不是纯函数,因为它的返回结果还受外部变量b的影响

2.函数之行时不会对外部变量产生影响(对外部变量产生影响简称副作用
如下:

const counter = {x:1}
let func = (counter) => (
  counter.x+1
) 
func(counter) //2

举反例:

let counter = { x:1 }
let func = (counter) => {
  counter.x=2
  return counter.x+1 
}
function(counter) //3
counter.x //1

这里对外部变量产生了影响,这就是所谓的副作用

类似的,像Ajax请求后端数据,添加登录监听和取消登录,手动修改DOM这些都是对外部变量产生了影响,都是副作用

总结:

在react中,纯函数的状态只能在函数内部的生命周期存活

上一篇 下一篇

猜你喜欢

热点阅读