计算属性

使用 getters 封装 render 所需要的状态或条件的组合

对于返回 boolean 的 getter 使用 is- 前缀命名

  1. // bad
  2. render () {
  3. return (
  4. <div>
  5. {
  6. this.state.age > 18
  7. && (this.props.school === 'A'
  8. || this.props.school === 'B')
  9. ? <VipComponent />
  10. : <NormalComponent />
  11. }
  12. </div>
  13. )
  14. }
  15. // good
  16. get isVIP() {
  17. return
  18. this.state.age > 18
  19. && (this.props.school === 'A'
  20. || this.props.school === 'B')
  21. }
  22. render() {
  23. return (
  24. <div>
  25. {this.isVIP ? <VipComponent /> : <NormalComponent />}
  26. </div>
  27. )
  28. }