[小知识点] react 性能
发布时间:2020-12-15 20:39:16 所属栏目:百科 来源:网络整理
导读:场景: jsx 绑定方法 方法有3种 1: // 在html中,使用箭头函数,自动绑定this class SearchHistory extends React.Component { ? ? ?clickEye(a,b){ ? ? ? ? // do something..... ? ? ?} render(){ return ( Button type=‘primary‘ appearance=‘link‘
场景: jsx 绑定方法 方法有3种 1: // 在html中,使用箭头函数,自动绑定this class SearchHistory extends React.Component {
? ? ?clickEye(a,b){
? ? ? ?
// do something.....
? ? ?}
render(){ return( <Button type=‘primary‘ appearance=‘link‘ onClick={() => { this.clickEye(a,item) }} > // 这里是箭头函数,写在了jsx中 <Icon name=‘eye‘ style={successIcon} /> 查看</Button> ) } } 2: // 在构造器中绑定this class SearchHistory extends React.Component { constructor (props) { super(props) this.clickEye = this.clickEye.bind(this) } clickEye(a,b){ // do something..... } render(){ return( <Button type=‘primary‘ appearance=‘link‘ onClick={ this.clickEye } > // 这里不是箭头函数 <Icon name=‘eye‘ style={successIcon} /> 查看</Button> ) } } 3: // 在写函数时候,使用箭头函数,自动绑定当前this class SearchHistory extends React.Component { constructor (props) { super(props) // 没有在这里绑定 } clickEye = () => { // 这是个箭头函数,自动绑定了当前this。 // do something... } render(){ return( <Button type=‘primary‘ appearance=‘link‘ onClick={ this.clickEye } > <Icon name=‘eye‘ style={successIcon} /> 查看</Button> ) } } 总结:我个人基本抛弃了第二种方法,经常使用的是第三种方法,如果遇到需要传特殊参数,并且从props,或者state中不好拿到的话,会使用第一种方法。需要传特殊组件情况不是很多,我是在使用其他组件时候遇到的。如下图:这是一个第三方table组件,有render函数,需要给button传item,并不需要event,因此采用了第三种写法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |