刚刚读过这篇文章:https://reactjs.org/docs/react-api.html#reactpurecomponent
并试图找出函数何时不返回纯净的东西?
确定要为组件提供相同的道具/状态,那么它将始终返回相同的结果吗?
答案 0 :(得分:1)
想象一下,如果您有一个组件显示天气情况,如果它是白天显示太阳的背景图像,如果是晚上则显示月亮的背景图像。
您将通过道具传递温度,风速等信息,但是您会根据一天中的时间显示正确的图像。
因此,如果您在白天和晚上通过15度的温度,即使通过相同的道具,组件的外观也会有所不同。
答案 1 :(得分:0)
如果您的功能组件有任何副作用,那么它将不是纯组件。例如,通过Date.now()
读取当前时间是一个副作用。如果该日期是通过道具传递的,那么您就可以了。但是React / JavaScript不能保证功能组件没有副作用。
请考虑以下功能组件。
function Impure() {
return <p>{Date.now()}</p>
}
function Pure(date) {
return <p>{date}</p>
}