首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML事件处理程序与React事件处理程序

HTML事件处理程序与React事件处理程序
EN

Stack Overflow用户
提问于 2017-08-17 08:47:11
回答 2查看 1.3K关注 0票数 7

我想问一个关于事件处理程序在HTML中使用和反应的问题。

在Jon编写的Javascript和Jquery一书中,作者提到使用HTML事件处理程序属性被认为是错误的做法,例如:

代码语言:javascript
复制
<button onClick="hide()">click me</button>

但是最近我开始学习React,当定义组件时,有许多使用事件处理程序作为属性的例子,这样做似乎很常见,而不是因为这样做而受到批评,

代码语言:javascript
复制
<button onClick={doSomething}>
  xxxyyyzzz
</button>

这有什么原因吗?这是因为这是在React中绑定事件处理程序的唯一方法吗?在我看来,它的反应本质上是通过HTML构建组件元素,但使用事件处理程序属性将事件分配给它,那么为什么React要带回一个被认为是错误实践的概念呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-17 09:09:06

为什么内联事件侦听器是不好的做法?

HTML描述文档的内容和结构,CSS描述文档的外观,而JavaScript描述的是逻辑或行为。这些东西应该分开保存。HTML和JavaScript代码不应该混在一起。你的例子是:

代码语言:javascript
复制
<button onClick="hide()">click me</button>

然而,这并不适用于反应:我们没有一个HTML文件。相反,我们有模块化的组件,它们有自己的结构、风格和行为。

在反应中,我们不希望将表示和逻辑分离,而是需要独立的组件。这就是它与仅使用"Vanilla JavaScript“/ DOM的应用程序不同的地方。

票数 9
EN

Stack Overflow用户

发布于 2017-08-17 08:59:37

在Javascript的前一个时代,这被认为是错误的实践,因为为了更好的代码管理,我们希望尽可能地分离HTML和JS。您无法使用另一组onClick快速导航到HTML页面中的button

在这里,您可以通过组件树管理应用程序代码。我认为反应的力量是:

  • 模块化
  • 作文
  • 干(不要重复)

回到简单的示例中,onClick处理程序将很容易地在组件中进行管理。也许还可以使用其他处理程序,但在1组件的范围内仍然很方便。取决于组件层次的级别,您想要做的一切都位于同一个页面、相同的类、相同的函数上。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45730497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档