Tippen, Tasten und die Maus
Nach dem @ kann jedes Ereignis stehen, das du von addEventListener kennst, mit demselben Namen: @input, @keydown, @mouseover und so weiter.
Tippen. Ein Textfeld bekommt nach jeder Änderung seines Textes das Ereignis input. Sein Handler liest den Text aus dem Ereignisobjekt, event.target.value, und speichert ihn in einer Ref:
<script setup>
import { ref } from "vue";
const name = ref("");
function nameAktualisieren(event) {
name.value = event.target.value;
}
</script>
<template>
<input :value="name" @input="nameAktualisieren">
<p>Hallo, {{ name }}!</p>
</template>Der Absatz ändert sich mit jedem getippten Buchstaben. :value="name" geht den anderen Weg: Es legt die Ref in das Feld, wenn das Skript also name.value ändert, etwa zu "", ändert sich auch das Feld. In der Lektion Formulare lernst du v-model kennen, das beides in einem Zug erledigt.
Tasten. @keydown kommt bei jeder gedrückten Taste. Um nur auf die Eingabetaste zu reagieren, füge den Modifikator .enter hinzu: @keydown.enter="senden". Vue ruft senden dann nur auf, wenn die Taste Enter ist, du brauchst also kein if (event.key === "Enter"). Es gibt weitere, etwa .esc für Escape und .space für die Leertaste.
Die Maus. @mouseover kommt, wenn der Mauszeiger auf ein Element wandert, und @mouseleave, wenn er das Element verlässt. Zusammen können sie etwas zeigen, solange der Zeiger über einem Element ist (mit const hinweis = ref(false); im Skript):
<template>
<p @mouseover="hinweis = true" @mouseleave="hinweis = false">Karottenkuchen</p>
<p>{{ hinweis ? "Mit Walnüssen gebacken." : "" }}</p>
</template>So schreibst du es:
Anweisungen
- 1
Wenn sich der Text im Feld ändert (
@input), lege ihn mit einer FunktionnotizAktualisieren(event)innotiz. Der Zähler unter dem Feld zeigt dann, wie viele Zeichen du getippt hast: BeiHafermilchsind es10 / 50. - 2
Das Drücken der Eingabetaste im Feld (
@keydown.enter) sendet die Notiz: Eine Funktionsenden()legtnotizingesendetund leertnotiz. Damit sich auch das Feld leert, binde es mit:valueannotiz. - 3
Solange der Mauszeiger über dem Fragezeichen ist, zeige die Hilfe an: Setze
hinweisbei@mouseoverauftrueund bei@mouseleavezurück auffalse.