在render或call getter中调用方法

问题描述 投票:1回答:1

当render方法应返回计算值时,使用类方法更合适

class User extends Component {
  getFullName () {
    const { fname, lname } = this.props
    return `${lname}, ${fname}`
  }
  render () {
    return <div>FULLNAME: {this.getFullName()}</div>
  }
}

或吸气剂:

class User extends Component {
  get fullName () {
    const { fname, lname } = this.props
    return `${lname}, ${fname}`
  }
  render () {
    return <div>FULLNAME: {this.fullName}</div>
  }
}

它们似乎都有效,但是我不清楚在渲染方法中调用函数是否是一种好的做法,如果一个人比另一个更受欢迎并且为什么这样做,我很好奇。

javascript reactjs getter es6-class
1个回答
1
投票

当render方法应返回计算值时,使用类方法更合适吗?

这里真的没有对错。这只是个人偏好和编码风格以及您喜欢的对象类型。

如果你想让它表现得好,并且看起来像是一个属性,那么使用一个getter,这样调用者可以像属性console.log(user.fullName)一样访问它。

如果你希望它的行为和调用者看起来像对象必须计算和返回的东西,那么使用一个方法(console.log(user.getFullName())`。

在这种特殊情况下,要么就好了。由于没有setter,我个人可能自己使用user.getFullName(),因此调用者很清楚这是只能检索,不能设置的东西,可能是计算属性,而不是直接存储的东西。

它们似乎都有效,但是我不清楚在渲染方法中调用函数是否是一种好的做法,如果一个人比另一个更受欢迎并且为什么这样做,我很好奇。

调用render()中的函数完全没有问题。那很好。

© www.soinside.com 2019 - 2024. All rights reserved.