【问题标题】:React Native best practice: bind() vs arrow functions in 2020React Native 最佳实践:2020 年的 bind() vs 箭头函数
【发布时间】:2020-04-29 19:52:35
【问题描述】:


我知道已经有一些关于这方面的线索,但我找不到真正的线索。 所以我的问题是,我应该始终使用绑定方法还是箭头函数? 2020年它们的优缺点是什么?根据我所读到的,我知道(至少在 2018 年)绑定方法具有更好的性能。 另一个问题:我是否应该只绑定函数,我通过单击在渲染方法中调用使用? 这里是一个小例子

constructor(super) {
props(super)

this.firstBind = this.firstBind.bind(this);
this.secondBind = this.secondBind.bind(this;
}

render() {
return (
<Button title="First Bind" onClick={this.firstBind} />
<Button title="First arrow" onClick={this.firstArrow} />
)
}

firstArrow = () => {
//some outout
}

secondArrow = async() => {
//fetch some data from a database and output it
}
secondBind() {
//some output
}
async secondBind() {
//fetch some data from a database and output it
}

我的目标是完全理解它。
非常感谢!
一月

【问题讨论】:

标签: react-native


【解决方案1】:

你是对的,这个问题之前已经被问过很多次了,它可能会被关闭,因为它有很多重复,但无论如何我会提供一个简短的答案。

绑定和箭头函数在 React 组件中实现相同的功能

在更技术层面上,绑定函数和箭头函数是不同的,但对于您正在谈论的反应世界,它们是相同的,只需创建一个绑定到创建它们的实例的上下文的函数,这样您就可以在执行时访问 instance 变量。

但是为什么有两种方法可以创建绑定函数呢?

那么,您会问,为什么要通过两种方式来创建上下文绑定函数呢?好吧,即使它们实现了相同的效果,您也可以看出.bind 版本更冗长且容易出错,因为您可能忘记绑定构造函数上的函数,因此使用箭头函数被认为是一种好习惯。

react 团队没有创建它们,它们是 javascript 的一部分,必须绑定函数只是该语言底层设计的结果,React 只会迫使您弯曲 javascript 以使其作为 OOP 语言正常工作。

好的,那你应该怎么做?

话虽如此,react 生态系统正在向 hooks 发展,尽管负责 react 的团队不断重复不需要使用 hooks,但趋势很明显,类组件将消失,例如:随着库更新使用hooks 和维护不同的访问方式太麻烦了,大多数都只使用 hooks。

所以 TL:DR in 2020: 这个问题不再相关,去使用带钩子的功能组件,你就没有问题了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 2020-08-01
    • 2021-01-20
    • 2016-07-25
    • 2019-10-10
    • 2023-03-04
    • 2018-03-21
    • 1970-01-01
    相关资源
    最近更新 更多