我刚刚真正开始掌握TS,正在将我的许多代码重构为TypeScript。当TS在React事件上强制使用HTML元素类型时,它让我思考如何创建表单及其提交事件处理。
我一直使用带有onClick={this.handleSubmission}
事件处理程序的<button />
元素。现在,React事件上指定的HTML元素类型让我认为处理表单提交似乎有两种主要方法-捕获提交按钮上的点击事件(如上所述(或捕获表单本身的onSubmit
事件。这些似乎是在TypeScript中键入的:-
(e: React.MouseEvent<HTMLButtonElement>)
(e: React.FormEvent<HTMLFormElement>)
就最佳实践而言,两者之间真的有什么区别吗?我假设提交按钮单击(假设它是一个真正的HTML按钮元素(将始终由(e: React.MouseEvent<HTMLButtonElement>)
处理。然而,<input type="submit" value="Submit" />
似乎(在TS术语中(是HTMLFormElement
上的真正FormEvent
,因为它不能是按钮事件。
是否有最佳实践或技术要求,还是仅仅取决于个人喜好?谢谢
不使用FormEvent
会增加担忧,因此捕获FormEvent可以节省时间。如果我们决定使用MouseEvent
而不是FormEvent
,我们应该通过添加e.preventDefault()
来关注默认值。
而使用CCD_ 13的CCD_。