这两个输入使用事件处理程序的方式在功能或性能方面有什么不同吗?
export default function App() {
const handleChange = e => {
console.log(e.target.value);
}
return (
<div className="App">
{/* example 1 */}
<input onChange={handleChange}></input>
{/* example 2 */}
<input onChange={e => handleChange(e)}></input>
</div>
);
}
1条答案
按热度按时间krcsximq1#
示例1是“更高性能”的,因为它只有1个函数而不是2个,但这绝对可以忽略不计。
另一方面,完全没有理由去做例2,因为它只是一个冗余函数,本质上与此相同:
无论如何,你可能会把这当作一个一般性的问题,所以还有一些评论:
示例1更灵活(IMO),并且更好地将JSX代码与JS代码分开。
你可能决定改变一些东西,比如
useCallback
,input
改变为具有不同签名的定制组件,...那么将函数与JSX代码分离是很好的。
另外,当你改变了很多布局,移动JSX组件时,当你不必关心太多的JS代码时,它会更好。