事件处理程序的正确名称是什么? onClick 还是 handleClick?
What is the right name of event handler? onClick or handleClick?
我认为保持代码一致是一件很重要的事情。
有时我用不同的处理程序名称(使用 Javascript)弄乱了我的代码。
事件处理程序的正确名称是什么? onClick
对比 handleClick
?
这是主观的,但您最常看到的是以下内容:
- 如果您要创建组件并公开事件挂钩,这些道具将是
on
:onClick、onHover、onUsernameChanged、onError。在您的组件内部,这些道具只是您在 on 某些事件上调用的函数。你不关心他们做什么,你的工作就是在正确的时间打电话给他们
- 如果你正在使用另一个组件,你想添加处理以响应这些事件,所以你使用
handle
:handleChange、handleClick、handleUserLogout,因为你现在的工作是处理一些事件并做一些事情发生响应它。如果您不处理,将不会对应用程序状态进行任何更改
严重,
根据:Naming-Event-Handlers-React。该页面的作者说:
道具:
我们通常使用on*
作为前缀,如onClick
。这符合内置事件处理程序约定。通过匹配它,我们声明这些道具将包含类似使用的事件处理函数。
对于函数名称:
我们遵循完全相同的模式,但我们将 on
替换为 handle*
,如 handleClick
.
希望能帮到你。
道具用在...例如:
const ProductVariants = ({ productId, onCancel, onReturnProducts })
但是你的函数名你应该使用 handle...
<ProductVariants
productId={productId}
onCancel={handleCancel}
onReturnProducts={handleReturnProduct}
/>
我更喜欢命名事件 props/attributes on*
和处理程序 handle*
.
原因很简单,否则有时会发生冲突。看看这个例子:
const Foo = ({ onClick }) => {
const handleClick = (event) => {
doSomethingElseHere();
onClick(event);
}
return (
<button onClick={handleClick}>Bar</button>
)
}
如果我们同时命名处理程序和道具 onClick
,它们的名称会冲突。
我认为保持代码一致是一件很重要的事情。
有时我用不同的处理程序名称(使用 Javascript)弄乱了我的代码。
事件处理程序的正确名称是什么? onClick
对比 handleClick
?
这是主观的,但您最常看到的是以下内容:
- 如果您要创建组件并公开事件挂钩,这些道具将是
on
:onClick、onHover、onUsernameChanged、onError。在您的组件内部,这些道具只是您在 on 某些事件上调用的函数。你不关心他们做什么,你的工作就是在正确的时间打电话给他们 - 如果你正在使用另一个组件,你想添加处理以响应这些事件,所以你使用
handle
:handleChange、handleClick、handleUserLogout,因为你现在的工作是处理一些事件并做一些事情发生响应它。如果您不处理,将不会对应用程序状态进行任何更改
严重,
根据:Naming-Event-Handlers-React。该页面的作者说:
道具:
我们通常使用on*
作为前缀,如onClick
。这符合内置事件处理程序约定。通过匹配它,我们声明这些道具将包含类似使用的事件处理函数。
对于函数名称:
我们遵循完全相同的模式,但我们将 on
替换为 handle*
,如 handleClick
.
希望能帮到你。
道具用在...例如:
const ProductVariants = ({ productId, onCancel, onReturnProducts })
但是你的函数名你应该使用 handle...
<ProductVariants
productId={productId}
onCancel={handleCancel}
onReturnProducts={handleReturnProduct}
/>
我更喜欢命名事件 props/attributes on*
和处理程序 handle*
.
原因很简单,否则有时会发生冲突。看看这个例子:
const Foo = ({ onClick }) => {
const handleClick = (event) => {
doSomethingElseHere();
onClick(event);
}
return (
<button onClick={handleClick}>Bar</button>
)
}
如果我们同时命名处理程序和道具 onClick
,它们的名称会冲突。