在React for web中,为了提高性能,在onPress
,onClick
等情况下,我们不应使用箭头功能。
此规则对React Native也有效吗?
答案 0 :(得分:0)
“一次学习,随处写”。如果不是JavaScript,JavaScript即将成为所有比赛的胜利者。 React-Native是另一个漂亮的JavaScript库(有些喜欢“框架”)。由于是JavaScript,因此RN的规则和条件与其他任何JS库的规则和条件都相同。
性能不是此处比较的重点。实际上,无论如何都不应进行比较。这是代码的有效性和可读性。胖箭头功能是最相关的更改JS范例之一。它们允许调用匿名函数,并通过更改this
绑定到函数的方式来处理现有的范围难题。例如,onPress = {this.onButtonPress.bind(this)}
变成onPress = {() => this.onButtonPress}
。如果仍然觉得声明一个函数很乏味,则可以执行以下操作
onPress = {() => {
this.props.navigation.navigate('HomePage')
}}
可以节省时间和代码,尽管这不是您惯常的做法,但还是要采用传统方式。
答案 1 :(得分:0)
使用箭头函数作为类属性是理想的,因为它不会创建自己的作用域。
如果生命周期方法(例如渲染)中有一个箭头函数,它的确会降低代码的效率,因为每次调用该方法时都会创建一个新函数,但这没关系,因为性能下降会可以忽略不计。
答案 2 :(得分:0)
两者都是出于自己的原因。性能并不是什么大问题。
通常,React-Native
个应用程序始终使用箭头功能。
这取决于要求。例如,如果您有一个按钮及其onPress道具,则最好传递箭头功能,因为它不需要绑定。如果需要引用从中定义this
的引用,则应使用常规功能(而不是箭头功能)。
箭头功能也非常灵活,您应该利用这些优势。
因此,如果需要this
,我建议使用箭头功能和常规功能。我仅在需要this
时才使用常规功能。