将用户交互事件(例如“点击”功能)绑定到函数内部的 html 标签真的是react方式render
吗?是否还有一种“react方式”,用于绑定(html)元素交互事件,使得它们不会在每次调用时重新定义render
?
我会假设当涉及到动画时会对性能产生影响。
问题很笼统,但示例代码如下(在此上下文中,onClick
事件绑定)。
render() {
return (
<Animate
start={() => ({
x: this.state.x,
y: this.state.y
})}
update={() => ({
x: [this.state.selected ? this.setX(true) : this.setX(false)],
y: [this.state.selected ? this.setY(true) : this.setY(false)],
timing: { duration: 1500, ease: easeCubicInOut },
})}
>
{(state) => {
const { x, y } = state;
return (
<div onClick={this.reverseSelection} className={this.state.style}
style={{
WebkitTransform: `translate3d(${x}px, ${y}px, 0)`,
transform: `translate3d(${x}px, ${y}px, 0)`,
}}
>
{this.props.name}
</div>
);
}}
</Animate>
)
}
}
如果这确实是推荐的方式,有没有办法减少假设的性能影响,如果你假设动画正在发生并且我们希望在动画期间是轻量级的?