react中函数的不同写法的区别是什么?
react中函数不同写法的区别是什么?下面本篇文章给大家介绍一下React内三种函数的写法,并对比一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

React内三种函数的写法
写法一:让函数内部的this指向这个类的实例,它是用bind实现的,bind的第一个参数表示context,就是this。
//写法一
class ManageAddress extends React.Component {
constructor(props) {
super(props);
this.handleChangeAddressType = this.handleChangeAddressType.bind(this)
...
}
/**
* 切换地址类型,重新获取地址列表
* @param key
*/
handleChangeAddressType(key) {
...
};
render() {
return (
...
<button onClick={this.handleChangeAddressType}>测试
</button >
...
)
}
}写法二:相当于让handleChangeAddressType的值为一个箭头函数,所以调用处直接传入这个值就可以,注意不能加括号会报错。而箭头函数的特性我们都知道:它不会自己创建this,它会从自己的作用域链上层继承this,这里this就会指向这个类的实例。这不是js标准写法,但是babel已经支持了。
//写法二
class ManageAddress extends React.Component {
constructor(props) {
super(props);
...
}
/**
* 切换地址类型,重新获取地址列表
* @param key
*/
handleChangeAddressType = (key) =>{
...
};
render() {
return (
...
<button onClick={this.handleChangeAddressType}>测试
</button >
...
)
}
}写法三:在调用处使用箭头函数,与第二种方法类似
//写法三
class ManageAddress extends React.Component {
constructor(props) {
super(props);
...
}
/**
* 切换地址类型,重新获取地址列表
* @param key
*/
handleChangeAddressType(key) {
...
};
render() {
return (
...
<button onClick={(key)=>this.handleChangeAddressType(key)}>测试
</button >
...
)
}
}更多前端开发学习的相关知识,请查阅 HTML中文网 !!