反应组件何时不是纯组件



刚刚读到这个:https://reactjs.org/docs/react-api.html#reactpurecomponent

并试图弄清楚函数何时不会返回纯的东西?

当然,如果您给组件相同的 props/状态,那么它将始终返回相同的结果?

想象一下,如果你有一个组件,如果它是白天,则显示太阳的背景图像,如果是晚上,则显示月亮的背景图片。

您将通过道具传递温度,风速等,但您会根据一天中的时间显示正确的图像。

因此,如果您在白天和夜间通过 15 度的温度,即使您通过了相同的道具,组件的外观也会有所不同。

如果你的函数组件有任何副作用,那么它就不是一个纯组件。例如,通过Date.now()读取当前时间是一种副作用。如果该日期是通过道具传递的,那么您没事。但是 React/JavaScript 不能保证函数组件没有副作用。

请考虑以下函数组件。

function Impure() {
  return <p>{Date.now()}</p>
}
function Pure(date) {
  return <p>{date}</p>
}

最新更新