原生DOM中事件绑定
- 方式一:获取元素,通过addEventListener('click', function(){})
- 方式二:按钮的onclick
React中事件绑定
两步骤:
- DOM原生事件使用小驼峰绑定,如
<button onClick=> - 具体事件的回调在{}内传入对应的方法
<button onClick={btnClick}>
this绑定问题
- 默认绑定:foo()
- 隐式绑定:obj.foo()
- 显示绑定:foo.bind(obj)(), foo.apply(obj, [arg1, arg2]), foo.call(obj, arg1, arg2)
- 构造函数绑定:new Person()
- 剪头函数:在定义的时候就能确定this,指向包裹剪头函数的第一个普通函数的调用方
react中JSX组件事件需要显示绑定原因
react事件绑定,this指向组件的三种方式,掌握第三种
- 方式一:方法是普通函数。显示绑定,JSX给的是方法的引用,真正执行this是全局,babel严格模式下是undefied,因此,需要在constructor种bind(this)【繁琐】
- 方式二:方法是剪头函数。剪头函数中没有this,指向的是调用方,组件实例【用的少?】。
- 方式三:方法是普通函数。JSX绑定事件时,传递剪头函数,剪头函数内直接this.执行普通方法,this的指向是隐式绑定。【必须掌握,用得最多,传参友好】