Heim Web-Frontend Front-End-Fragen und Antworten So klicken Sie auf die Eingabetaste, um sich direkt bei Vue anzumelden

So klicken Sie auf die Eingabetaste, um sich direkt bei Vue anzumelden

May 11, 2023 am 11:01 AM

Vue.js ist ein progressives JavaScript-Framework zum Erstellen von Benutzeroberflächen. Als Tool ist Vue.js flexibler und kann nicht nur für PC-Websites, sondern auch für die Entwicklung mobiler Anwendungen verwendet werden. In vielen Szenarien müssen wir Benutzern ermöglichen, sich über ein Formular auf der Seite anzumelden. In diesem Artikel stellen wir vor, wie Sie Vue.js verwenden, um die Eingabetaste für die direkte Anmeldung zu implementieren.

1. Grundlegende Code-Implementierung

Zuerst benötigen wir ein Eingabefeld und eine Anmeldeschaltfläche. Der Beispielcode lautet wie folgt:

<template>
  <div>
    <input v-model="username" type="text" placeholder="请输入用户名">
    <input v-model="password" type="password" placeholder="请输入密码" @keyup.enter="login">
    <button @click="login">登录</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      username: '',
      password: ''
    }
  },
  methods: {
    login () {
      // 登录操作
    }
  }
}
</script>
Nach dem Login kopieren

Davon wird die v-model-Direktive verwendet -way bindet den Wert des Eingabefelds, das Ereignis @keyup.enter überwacht die Eingabetaste, das Ereignis @click überwacht den Mausklick und das Ereignis login</code > ist die Login-Funktion. <code>v-model 指令用于双向绑定输入框的值,@keyup.enter 事件监听回车键,@click 事件监听鼠标点击,login 为登录函数。

我们在模板中,将回车键的事件绑定到了输入框上,并且在登录按钮上同步添加了点击事件。在输入框的回车事件中,直接调用了登录函数,以完成当前的登录操作。

二、防止重复提交

我们可以在登录按钮和回车键事件上,使用 @click.prevent@keyup.enter.prevent 防止多次提交,避免重复操作。如下:

<template>
  <div>
    <input v-model="username" type="text" placeholder="请输入用户名">
    <input v-model="password" type="password" placeholder="请输入密码" @keyup.enter.prevent="login">
    <button @click.prevent="login">登录</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      username: '',
      password: '',
      isSubmitting: false,
    }
  },
  methods: {
    login () {
      if(this.isSubmitting) return;
      
      this.isSubmiting = true;
      // 登录操作
      
      this.isSubmitting = false;
    }
  }
}
</script>
Nach dem Login kopieren

在数据中增加一个 isSubmitting 属性,用于判断当前是否正在提交表单。在调用登录函数时检查该属性是否为真,如果为真,则直接返回,避免了重复提交表单,确保了用户的正常体验。

三、键盘焦点

当表单中存在多个输入框时,我们需要一个方法来确定用户在哪一个输入框中。可以使用 Vue.js 提供的 ref 属性获取元素的键盘焦点。如下:

<template>
  <div>
    <input v-model="username" type="text" placeholder="请输入用户名" ref="usernameInput">
    <input v-model="password" type="password" placeholder="请输入密码" @keyup.enter.prevent="submit" ref="passwordInput">
    <button @click.prevent="submit">登录</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      username: '',
      password: '',
      isSubmitting: false,
    }
  },
  methods: {
    submit () {
      if(this.isSubmitting) return;
      
      this.isSubmiting = true;
      // 登录操作
  
      this.isSubmitting = false;
    }
  },
  mounted() {
    this.$refs.usernameInput.$el.focus();
  }
}
</script>
Nach dem Login kopieren

我们在 mounted 生命周期中,使用 $refs 属性获取输入框的 DOM 元素,并使用 focus

In der Vorlage haben wir das Eingabetastenereignis an das Eingabefeld gebunden und gleichzeitig ein Klickereignis zur Anmeldeschaltfläche hinzugefügt. Beim Eingabeereignis des Eingabefelds wird die Anmeldefunktion direkt aufgerufen, um den aktuellen Anmeldevorgang abzuschließen.

2. Wiederholte Übermittlungen verhindern

Wir können @click.prevent und @keyup.enter.prevent auf der Anmeldeschaltfläche verwenden und Schlüsselereignisse eingeben, um mehrfache Übermittlungen zu verhindern um Doppelarbeit zu vermeiden. Wie folgt: 🎜rrreee🎜Fügen Sie ein isSubmitting-Attribut zu den Daten hinzu, um zu bestimmen, ob das Formular gerade übermittelt wird. Überprüfen Sie, ob dieses Attribut wahr ist, wenn Sie die Anmeldefunktion aufrufen. Wenn es wahr ist, geben Sie es direkt zurück, um eine wiederholte Übermittlung des Formulars zu vermeiden und eine normale Benutzererfahrung sicherzustellen. 🎜🎜3. Tastaturfokus🎜🎜Wenn das Formular mehrere Eingabefelder enthält, benötigen wir eine Methode, um zu bestimmen, in welchem ​​Eingabefeld sich der Benutzer befindet. Sie können den Tastaturfokus eines Elements mithilfe des von Vue.js bereitgestellten Attributs ref abrufen. Wie folgt: 🎜rrreee🎜Im mounted-Lebenszyklus verwenden wir das $refs-Attribut, um das DOM-Element des Eingabefelds abzurufen, und verwenden den focus-Methode zum Fokussieren der Tastatur Der Fokus wird auf das erste Eingabefeld gesetzt. 🎜🎜4. Zusammenfassung🎜🎜Durch die oben genannten Praktiken haben wir gelernt, wie man Vue.js verwendet, um die Funktion der direkten Anmeldung mit der Eingabetaste zu implementieren und die Verarbeitung anzuwenden, um wiederholte Übermittlungen und Tastaturfokus zu verhindern und so das Benutzererlebnis zu optimieren. Ein Teil des Implementierungscodes ist auch im Codebeispiel enthalten. Ich hoffe, dass er für Sie hilfreich ist. 🎜

Das obige ist der detaillierte Inhalt vonSo klicken Sie auf die Eingabetaste, um sich direkt bei Vue anzumelden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Mar 19, 2025 pm 04:16 PM

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.

Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Apr 09, 2025 am 12:11 AM

React kombiniert JSX und HTML, um die Benutzererfahrung zu verbessern. 1) JSX bettet HTML ein, um die Entwicklung intuitiver zu gestalten. 2) Der virtuelle DOM -Mechanismus optimiert die Leistung und reduziert den DOM -Betrieb. 3) Komponentenbasierte Verwaltungs-Benutzeroberfläche zur Verbesserung der Wartbarkeit. 4) Staatsmanagement und Ereignisverarbeitung verbessern die Interaktivität.

Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Mar 25, 2025 pm 02:07 PM

Das Reaktivitätssystem von VUE 2 kämpft mit der Einstellung der Direktarray -Index, der Längenänderung und der Addition/Löschung der Objekteigenschaften. Entwickler können die Mutationsmethoden von VUE und VUE.SET () verwenden, um die Reaktivität sicherzustellen.

Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Mar 21, 2025 am 11:47 AM

In dem Artikel wird das Definieren von Routen im React -Router unter Verwendung der & lt; Route & gt; Komponente, Abdeckung von Requisiten wie Pfad, Komponente, Rendern, Kindern, exakt und verschachteltes Routing.

See all articles