最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - When would a react component not be a pure component? - Stack Overflow

programmeradmin5浏览0评论

just been reading this: .html#reactpureponent

and trying to work out when would a function not return something pure?

surely if you give a ponent the same props/state then it will always return the same result?

just been reading this: https://reactjs/docs/react-api.html#reactpureponent

and trying to work out when would a function not return something pure?

surely if you give a ponent the same props/state then it will always return the same result?

Share Improve this question asked Jan 3, 2019 at 14:27 Red BaronRed Baron 7,70112 gold badges47 silver badges112 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 6

If your function ponent has any side effects, then it would not be a pure ponent. For example, reading the current time via Date.now() is a side effect. If that date is passed via prop, then you're fine. But React/JavaScript cannot guarantee that a function ponent doesn't have side effects.

Consider the following function ponents.

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

function Pure(date) {
  return <p>{date}</p>
}

Imagine if you had a ponent that showed the weather and a background image of the sun if it's daytime and a background picture of the moon if it's night.

You would pass in the temperature, wind speed etc. through props, but you would display the correct image depending on the time of day.

So, if you pass the temperature of 15 degrees during the day and during the night, the ponent will look differently even though you have passed the same props.

发布评论

评论列表(0)

  1. 暂无评论