组件化优于多层 render

当组件的 jsx 只写在一个 render 方法显得太臃肿时,很可能更适合拆分出一个组件,视情况采用 class component 或 stateless component

  1. // bad
  2. renderItem ({name}) {
  3. return (
  4. <li>
  5. {name}
  6. {/* ... */}
  7. </li>
  8. )
  9. }
  10. render () {
  11. return (
  12. <div className="menu">
  13. <ul>
  14. {this.props.items.map(item => this.renderItem(item))}
  15. </ul>
  16. </div>
  17. )
  18. }
  1. // good
  2. function Items ({name}) {
  3. return (
  4. <li>
  5. {name}
  6. {/* ... */}
  7. </li>
  8. )
  9. }
  10. render () {
  11. return (
  12. <div className="menu">
  13. <ul>
  14. {this.props.items.map(item => <Items {...item} />)}
  15. </ul>
  16. </div>
  17. )
  18. }