react中为什么可以直接在组件中写箭头函数
看到antd mobile的一个demo如下:
import { Drawer, List, NavBar } from 'antd-mobile';
class App1 extends React.Component {
state = {
open: false,
position: 'left',
}
onOpenChange = (...args) => {
console.log(args);
this.setState({ open: !this.state.open });
}
render() {
return (
...
)
}
}
ReactDOM.render(<App1 />, mountNode);
为什么原型方法onOpenChange可以写成箭头函数的形式?这个不是只是一个函数吗?按道理应该是类似这样的
onOpenChange : function(){}
或者这样的:
onOpenChange(){}
应该是键值对的形式才对啊!!!
是不是其实这样就不是原型方法了(就是不放在prototype上了),而是实例方法了?
这种写法到底是什么?它有什么特别的地方?它存在的意义是什么?它有哪些应用场景?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是 ES7 class 的新语法,可以直接给类的属性或方法直接赋值。
JS新的语法知识,所以可以可以用
相当于
箭头函数除了写起来方便外 还能绑定当前作用域
你这个函数一看就是用来绑定给事件的函数
在react中用es5 class 建立的组件需要手动绑定作用域,用 createClass的则不用