在todolist的中,我使用的最多的方式是直接声明箭头函数,然后调用,因为箭头函数默认绑定this,特别是callback这种不绑定this,内部无法使用。

或者使用这种方式

这种方式也会默认绑定this,而且可以传递面板上的参数前往调用的函数。
但是被指出我的绑定方式很不合理,造成了不必要的性能消耗。
第一点: 直接创建箭头函数去调用,在react16.4版本仍然被官方标记为实验性语法,并不是一个推荐的做法

第二点:直接在dom上书写箭头函数或者bind(this),都是一个不怎么合理的行为,因为每次render都会执行,这也是一种性能上的浪费,只需要在构造函数中绑定一次即可

(当然,视情况还是需要在div中创建箭头函数来使用,直接绑定this是法无法进行参数传递的,当需要传递参数到回调中,还是需要用箭头函数来实现)

网友评论