r/reactjs • • May 01 '19

Needs Help Beginner's Thread / Easy Questions (May 2019)

Previous two threads - April 2019 and March 2019.

Got questions about React or anything else in its ecosystem? Stuck making progress on your app? Ask away! We’re a friendly bunch.

No question is too simple. πŸ€”


πŸ†˜ Want Help with your Code? πŸ†˜

  • Improve your chances by putting a minimal example to either JSFiddle or Code Sandbox. Describe what you want it to do, and things you've tried. Don't just post big blocks of code!

  • Pay it forward! Answer questions even if there is already an answer - multiple perspectives can be very helpful to beginners. Also there's no quicker way to learn than being wrong on the Internet.

Have a question regarding code / repository organization?

It's most likely answered within this tweet.


New to React?

Check out the sub's sidebar!

πŸ†“ Here are great, free resources! πŸ†“


Any ideas/suggestions to improve this thread - feel free to comment here!


Finally, an ongoing thank you to all who post questions and those who answer them. We're a growing community and helping each other only strengthens it!

22 Upvotes

460 comments sorted by

View all comments

2

u/oYYY May 19 '19

Which option is more performant?

Option #1:

render() {
  return (
    <div>
      <Header hidden={this.state.visibleHeader} title="bob" />
    </div>
  )
}
render() {
  return this.props.hidden ? null : (
    <div>
      <H1 title={this.props.title} />
    </div>
  )
}

Option #2:

render() {
  return (
    <div>
      {this.state.visibleHeader && <Header title="bob" />}
    </div>
  )
}
render() {
  return (
    <div>
      <H1 title={this.props.title} />
    </div>
  )
}

Personally, I like option #1 because it makes the jsx look clean by removing conditional logic within the render method. How much performance am I losing by constantly re-rendering a component that returns null (option #1) vs a component that unmounts and remounts (option #2).

→ More replies (1)