Предотвращение поведения по умолчанию
Для некоторых событий браузеры имеют поведение по умолчанию. Например, когда вы нажимаете на ссылку, браузер обычно переходит к ссылке атрибута href
. Бывают случаи, когда мы хотели бы предотвратить это. По этой причине API события содержит метод preventDefault()
.
События браузера являются синхронными, но поскольку Qwik является мелкозернистым, загружаемая модель выполнения Qwik является асинхронной. Это означает, что в момент срабатывания события обработчик события может быть ещё не загружен. К моменту загрузки обработчика события событие уже было обработано браузером, и вызов preventDefault()
не будет иметь никакого эффекта.
Для решения этой проблемы Qwik предоставляет декларативный API для автоматического вызова preventDefault()
при наступлении события. Это достигается путём добавления к элементу атрибута preventdefault:<event-name>
. Это позволяет загрузчику Qwik синхронно вызывать preventDefault()
, когда срабатывает событие.
Пример
Щелчок по ссылке вызывает событие навигации. Мы хотим предотвратить это, и затем вызвать наш метод обратного вызова. Для этого добавьте preventdefault:click
к <a href>
.