刚刚读到这个: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>
}