使用 event.preventDefault() 阻止默认行为
在本步骤中,你将学习如何阻止与事件相关的默认浏览器行为。这是一个常见的需求,尤其是在处理表单提交时。
某些浏览器事件具有默认操作。例如,点击链接会导航到新页面,而点击 <form> 内的提交按钮会提交表单,这通常会导致页面重新加载。
为了演示这一点,让我们将按钮包裹在 <form> 元素中。默认情况下,点击表单内的按钮会触发表单提交。
更新你的 src/App.jsx 以包含 <form> 标签:
function App() {
function handleClick(event) {
console.log(event);
}
return (
<form>
<button onClick={handleClick}>Click me</button>
</form>
);
}
export default App;
如果你现在保存并点击按钮,你会注意到页面重新加载了,并且你可能会短暂地看到控制台日志,然后它就消失了。这就是表单的默认提交行为。
要阻止这种情况,你可以在处理器中调用 event.preventDefault()。此方法告诉浏览器不要执行其默认操作。
修改 handleClick 函数以调用 event.preventDefault():
function App() {
function handleClick(event) {
event.preventDefault();
console.log("Form submission prevented!");
}
return (
<form>
<button onClick={handleClick}>Click me</button>
</form>
);
}
export default App;
保存文件并重试。现在当你点击 Web 8080 标签页中的按钮时,页面将不会重新加载。你将在控制台中持续看到消息 "Form submission prevented!"。你已成功控制了事件的行为。