React native React本机最佳实践:2020年的bind()与arrow函数

React native React本机最佳实践:2020年的bind()与arrow函数,react-native,React Native,我知道已经有一些关于这方面的线索,但我没有找到一个真正的线索。 所以我的问题是,我应该总是使用bind方法还是arrow函数? 2020年,它们的利/弊是什么?从我所读到的内容中,我知道(至少在2018年)bind方法有更好的性能。 另一个问题:我应该只绑定函数吗?我通过单击在render方法中调用这些函数? 这里有一个小例子 constructor(super) { props(super) this.firstBind = this.firstBind.bind(this); this.s


我知道已经有一些关于这方面的线索,但我没有找到一个真正的线索。 所以我的问题是,我应该总是使用bind方法还是arrow函数? 2020年,它们的利/弊是什么?从我所读到的内容中,我知道(至少在2018年)bind方法有更好的性能。 另一个问题:我应该只绑定函数吗?我通过单击在render方法中调用这些函数? 这里有一个小例子

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
}
构造函数(超级){
道具(超级)
this.firstBind=this.firstBind.bind(this);
this.secondBind=this.secondBind.bind(this;
}
render(){
返回(
)
}
第一箭头=()=>{
//有些人出去了
}
secondArrow=async()=>{
//从数据库中获取一些数据并将其输出
}
第二绑定(){
//一些输出
}
异步secondBind(){
//从数据库中获取一些数据并将其输出
}
我的目标是完全理解它。
非常感谢!

Jan

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

绑定和箭头功能在React组件中实现相同的功能 在更技术的层面上,绑定函数和箭头函数是不同的,但对于您所讨论的react世界,它们是相同的,只需创建一个绑定到创建它们的实例上下文的函数,这样您就可以在执行它们时访问实例变量

但是为什么有两种方法可以创建绑定函数呢? 那么,您会问,为什么有两种创建上下文绑定函数的方法会遇到麻烦呢?好吧,尽管它们实现了相同的功能,但您可以看出,
.bind
版本更详细,也更容易出错,因为您可能会忘记在构造函数上绑定函数,因此使用使用箭头函数

react团队没有创建它们,它们是javascript的一部分,必须绑定函数只是该语言底层设计的结果,react只会迫使您将javascript转换为OOP语言

好吧,那你该怎么办? 也就是说,react生态系统正朝着钩子的方向发展,尽管负责react的团队不需要使用钩子,但趋势是很明显的,类组件将消失,例如:随着库更新以使用钩子,并且维护不同的访问方式太麻烦了,大多数都使用钩子仅仅


因此,TL:DR在2020年:这个问题不再相关,使用带有挂钩的功能组件,您将不会有任何问题

您是对的,这个问题以前被问过很多次,可能会被关闭,因为它有太多重复项,但无论如何,我将提供一个简短的答案

绑定和箭头功能在React组件中实现相同的功能 在更技术的层面上,绑定函数和箭头函数是不同的,但对于您所讨论的react世界,它们是相同的,只需创建一个绑定到创建它们的实例上下文的函数,这样您就可以在执行它们时访问实例变量

但是为什么有两种方法可以创建绑定函数呢? 那么,您会问,为什么有两种创建上下文绑定函数的方法会遇到麻烦呢?好吧,尽管它们实现了相同的功能,但您可以看出,
.bind
版本更详细,也更容易出错,因为您可能会忘记在构造函数上绑定函数,因此使用使用箭头函数

react团队没有创建它们,它们是javascript的一部分,必须绑定函数只是该语言底层设计的结果,react只会迫使您将javascript转换为OOP语言

好吧,那你该怎么办? 也就是说,react生态系统正朝着钩子的方向发展,尽管负责react的团队不需要使用钩子,但趋势是很明显的,类组件将消失,例如:随着库更新以使用钩子,并且维护不同的访问方式太麻烦了,大多数都使用钩子仅仅

因此,TL:DR在2020年:这个问题不再相关,使用带有挂钩的功能组件,您将不会有任何问题