gpt4 book ai didi

javascript - 在 render 中调用方法或使用 getter

转载 作者:行者123 更新时间:2023-11-30 20:52:41 25 4
gpt4 key购买 nike

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

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

或 setter/getter :

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

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

最佳答案

When a render method should return a calculated value, is it more appropriate to use a class method?

这里真的没有对错之分。这只是个人喜好和编码风格的问题,以及您喜欢在对象上使用哪种类型的界面。

如果您希望它的行为在调用者看来就像是一个属性,那么请使用 getter,以便调用者可以像访问属性一样访问它 console.log(user.fullName) .

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

在这种特殊情况下,两者都可以。由于没有二传手,我个人可能会使用 user.getFullName()我自己所以调用者很清楚这是只能检索的东西,不能设置并且可能是计算属性,而不是直接存储的东西。

They both seem to work, but I'm unclear if calling a function within a render method is good practice or not and am curious if one is preferred over the other and why.

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

关于javascript - 在 render 中调用方法或使用 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47999365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com