Inhaltsverzeichnis
Die Magie des V-Modells
Sind Sie neugierig, was das Eingabeereignis ist?
V-Modell in der Komponente
V-Modell-Validierungsprinzip der Komponente
Heim Web-Frontend js-Tutorial Detaillierte Erläuterung von V-Modell-Instanzen in Komponenten

Detaillierte Erläuterung von V-Modell-Instanzen in Komponenten

Jun 26, 2017 am 10:36 AM
v-model 知道 组件

Die Magie des V-Modells


html

<div id="app">
 <input v-model="poin">
  {{ poin }}</div>
Nach dem Login kopieren

js

new Vue({
  el:&#39;#app&#39;,
  data:{poin:&#39;zqz&#39;
  }})
Nach dem Login kopieren

Sobald sich der von uns eingegebene Wert ändert, ändert sich auch der Punktwert in den Daten.

Theoretisch wird ein Ereignis ausgelöst, wenn sich der Wert in den Daten ändert, aber wir haben es nicht gesehen?

wird tatsächlich in der Vue-Dokumentation erklärt:

<input v-model="something">
Nach dem Login kopieren

ist der folgende syntaktische Zucker

<input v-bind:value="something" v-on:input="something = $event.target.value">
Nach dem Login kopieren

Der Das input-Ereignis wird bei jeder Eingabe ausgelöst und die Eingabe ist an die Inline-Funktion gebunden, wodurch sich der Wert von something ändert.

Sind Sie neugierig, was das Eingabeereignis ist?

Wenn sich der Wert des Elements <input> oder <textarea> ändert, wird das DOM-Eingabeereignis synchron ausgelöst. (Bei Eingabeelementen mit Typ = Kontrollkästchen oder Typ = Radio wird das Eingabeereignis nicht ausgelöst, wenn der Benutzer auf das Steuerelement klickt, da sich das Wertattribut nicht ändert.) Wenn sich der Inhalt ändert, wird es außerdem im Editor des Contenteditable ausgelöst. In diesem Fall ist das Ereignisziel das Edit-Host-Element. Wenn es zwei oder mehr Elemente mit contenteditable true gibt, ist der „Edit Host“ das nächstgelegene Vorgängerelement, dessen übergeordnetes Element nicht editierbar ist. Ebenso wird es auch auf das Stammelement des designMode-Editors ausgelöst.

Einzelheiten finden Sie unter: MDN-Eingabeereignis

V-Modell in der Komponente


V-Modell-Validierungsprinzip der Komponente

  • Akzeptiert ein value-Attribut

  • Löst das value-Ereignis aus, wenn es ein neues input

< gibt 🎜>uns Schauen Sie sich zuerst den Code an

el-input.vue

<template>

    <div>
      <p>input的封装</p>
      <input type="text"
             ref="input"
             :value="value"
             @input="updateValue($event.target.value)"
             @focus="selectAll"
             >
    </div>

</template>
<script>

export default {
  name: &#39;el-input&#39;,
  props: {
    value: {
      type: Number,
      default: 0
    },
  },
  methods: {
    // 每次都会加一
    updateValue (value) {
      this.$refs.input.value = value + 1;
    },
    selectAll(event) {
      setTimeout(function () {
        event.target.select()
      }, 0)
    }
  }
}

</script>
<style>
</style>
Nach dem Login kopieren
Verwenden Sie diese Komponente in Tom.vue

<style>
</style>
<template>
    <!-- 在父组件中使用 -->
    <div>
      <v-el-input></v-el-input>
    </div>

</template>
<script>
import vElInput from &#39;./el-input.vue&#39;

export default {
  name: &#39;tom&#39;,
  components: {
    vElInput
  }
}

</script>
Nach dem Login kopieren

Detaillierte Erläuterung von V-Modell-Instanzen in Komponenten

Jedes Mal, wenn es verwendet wird, wird am Ende eine 1 hinzugefügt

Aber die Frage ist, wie bekommen wir diesen Wert in Tom.vue?

  • Methode 1: Verwenden Sie Ereignisse, aber es fühlt sich etwas gekrümmt an, um das Land zu retten

  • Methode 2: Verwenden Sie das V-Modell

Dies zeigt die Leistungsfähigkeit des V-Modells, da der obige syntaktische Zucker das

-Ereignis automatisch bindet. Wir können diese Funktion also nutzen, um etwas zu tun. input

V-Modell an die Komponente binden

Ändern Sie den Code von Tom.vue

<template>
    <!-- 在父组件中使用 -->
    <div>
      <v-el-input v-model="eleValue"></v-el-input>
      eleValue的值:{{ this.eleValue }}
    </div>

</template>
<script>
import vElInput from &#39;./el-input.vue&#39;

export default {
  name: &#39;tom&#39;,
  components: {
    vElInput
  },
  data () {
    return {
      eleValue: 666 //设置一个默认值
    }
  }
}

</script>
Nach dem Login kopieren
Anfangszustand


Detaillierte Erläuterung von V-Modell-Instanzen in Komponenten

Das Zustand nach der Eingabe

Detaillierte Erläuterung von V-Modell-Instanzen in Komponenten

Wenn sich dann der von uns eingegebene Wert ändert, ändert sich der

, den wir erwartet haben, immer noch nicht, aber der Wert in el-input.vue ändert sicheleValue

bedeutet das Der Wert wird nach der Änderung nicht an die übergeordnete Komponente übertragen (synchronisiert). Dies ist der Zweck von

in vue1, wurde jedoch in vue2 aufgegeben. .sync

Ändern Sie den el-input.vue-Code und fügen Sie

this.$emit(&#39;input&#39;, value*1)

...updateValue (value) {  this.$refs.input.value = value + 1;  // 触发组件上绑定的input事件,以实现value同步  this.$emit(&#39;input&#39;, value*1)},...
Nach dem Login kopieren
hinzu, um eine Wertesynchronisierung zu erreichen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von V-Modell-Instanzen in Komponenten. 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)

So installieren Sie die DirectPlay-Komponente der alten Windows 10-Version So installieren Sie die DirectPlay-Komponente der alten Windows 10-Version Dec 28, 2023 pm 03:43 PM

Viele Benutzer stoßen beim Spielen einiger Spiele unter Win10 immer auf Probleme, wie z. B. ein Einfrieren des Bildschirms und unscharfe Bildschirme. Zu diesem Zeitpunkt können wir das Problem lösen, indem wir die Directplay-Funktion aktivieren, und die Bedienungsmethode der Funktion ist ebenfalls sehr einfach. So installieren Sie DirectPlay, die alte Komponente von Win10 1. Geben Sie „Systemsteuerung“ in das Suchfeld ein und öffnen Sie es. 2. Wählen Sie große Symbole als Anzeigemethode. 3. Suchen Sie nach „Programme und Funktionen“. 4. Klicken Sie links, um oder zu aktivieren Win-Funktionen ausschalten 5. Wählen Sie hier die alte Version aus. Aktivieren Sie einfach das Kontrollkästchen

So verwenden Sie v-model.number, um die Datentypkonvertierung von Eingabefeldern in Vue zu implementieren So verwenden Sie v-model.number, um die Datentypkonvertierung von Eingabefeldern in Vue zu implementieren Jun 11, 2023 am 08:54 AM

In Vue ist das V-Modell eine wichtige Anweisung zur Implementierung der bidirektionalen Bindung. Es ermöglicht uns, Benutzereingaben einfach mit den Datenattributen von Vue zu synchronisieren. In einigen Fällen müssen wir die Daten jedoch konvertieren, z. B. den vom Benutzer eingegebenen Zeichenfolgentyp in einen numerischen Typ konvertieren. In diesem Fall müssen wir den Modifikator .number des V-Modells verwenden, um dies zu erreichen. Grundlegende Verwendung von v-model.number v-model.number ist eine Modifikation von v-model

Wie implementiert man eine Kalenderkomponente mit Vue? Wie implementiert man eine Kalenderkomponente mit Vue? Jun 25, 2023 pm 01:28 PM

Vue ist ein sehr beliebtes Front-End-Framework. Es bietet viele Tools und Funktionen wie Komponentisierung, Datenbindung, Ereignisbehandlung usw., die Entwicklern beim Erstellen effizienter, flexibler und einfach zu wartender Webanwendungen helfen können. In diesem Artikel werde ich vorstellen, wie man eine Kalenderkomponente mit Vue implementiert. 1. Anforderungsanalyse Zunächst müssen wir die Anforderungen dieser Kalenderkomponente analysieren. Ein einfacher Kalender sollte über die folgenden Funktionen verfügen: Anzeige der Kalenderseite des aktuellen Monats; Unterstützung des Wechsels zum vorherigen oder nächsten Monat; Unterstützung beim Klicken auf einen bestimmten Tag;

Grundlagen der VUE3-Entwicklung: Verwendung von Erweiterungen zum Erben von Komponenten Grundlagen der VUE3-Entwicklung: Verwendung von Erweiterungen zum Erben von Komponenten Jun 16, 2023 am 08:58 AM

Vue ist derzeit eines der beliebtesten Front-End-Frameworks, und VUE3 ist die neueste Version des Vue-Frameworks. Im Vergleich zu VUE2 bietet VUE3 eine höhere Leistung und ein besseres Entwicklungserlebnis und ist für viele Entwickler zur ersten Wahl geworden. In VUE3 ist die Verwendung von Erweiterungen zum Erben von Komponenten eine sehr praktische Entwicklungsmethode. In diesem Artikel wird erläutert, wie Erweiterungen zum Erben von Komponenten verwendet werden. Was heißt erweitert? In Vue ist Extends ein sehr praktisches Attribut, das für untergeordnete Komponenten verwendet werden kann, um von ihren Eltern zu erben.

Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Mar 15, 2024 pm 04:51 PM

Das Standardanzeigeverhalten für Komponenten im Angular-Framework gilt nicht für Elemente auf Blockebene. Diese Designwahl fördert die Kapselung von Komponentenstilen und ermutigt Entwickler, bewusst zu definieren, wie jede Komponente angezeigt wird. Durch explizites Festlegen der CSS-Eigenschaft display kann die Anzeige von Angular-Komponenten vollständig gesteuert werden, um das gewünschte Layout und die gewünschte Reaktionsfähigkeit zu erreichen.

So öffnen Sie die Einstellungen der alten Version von Win10-Komponenten So öffnen Sie die Einstellungen der alten Version von Win10-Komponenten Dec 22, 2023 am 08:45 AM

Die alten Win10-Komponenten müssen vom Benutzer selbst aktiviert werden, da viele Komponenten standardmäßig geschlossen sind. Der Vorgang ist sehr einfach Versionskomponenten? Öffnen 1. Klicken Sie auf Start und dann auf „Win-System“. 2. Klicken Sie, um die Systemsteuerung aufzurufen. 3. Klicken Sie dann auf das Programm unten. 4. Klicken Sie auf „Win-Funktionen aktivieren oder deaktivieren“. 5. Hier können Sie auswählen, was Sie möchten öffnen

Vue-Fehler: Das V-Modell kann für die bidirektionale Datenbindung nicht korrekt verwendet werden. Vue-Fehler: Das V-Modell kann für die bidirektionale Datenbindung nicht korrekt verwendet werden. Aug 19, 2023 pm 08:46 PM

Vue-Fehler: Das V-Modell kann für die bidirektionale Datenbindung nicht korrekt verwendet werden. Einführung: Die bidirektionale Datenbindung ist eine sehr häufige und leistungsstarke Funktion bei der Entwicklung mit Vue. Manchmal kann es jedoch zu Problemen kommen. Wenn wir versuchen, das V-Modell für die bidirektionale Datenbindung zu verwenden, tritt ein Fehler auf. Dieser Artikel beschreibt die Ursache und Lösung dieses Problems und zeigt anhand eines Codebeispiels, wie das Problem gelöst werden kann. Problembeschreibung: Wenn wir versuchen, das V-Modell in Vue zu verwenden

Vue-Komponentenpraxis: Entwicklung von Paging-Komponenten Vue-Komponentenpraxis: Entwicklung von Paging-Komponenten Nov 24, 2023 am 08:56 AM

Vue-Komponentenpraxis: Einführung in die Entwicklung von Paging-Komponenten In Webanwendungen ist die Paging-Funktion eine wesentliche Komponente. Eine gute Paginierungskomponente sollte einfach und klar in der Darstellung sein, reich an Funktionen und leicht zu integrieren und zu verwenden sein. In diesem Artikel stellen wir vor, wie Sie mit dem Vue.js-Framework eine hochgradig anpassbare Paging-Komponente entwickeln. Wir erklären anhand von Codebeispielen ausführlich, wie man mit Vue-Komponenten entwickelt. Technologie-Stack Vue.js2.xJavaScript (ES6) HTML5- und CSS3-Entwicklungsumgebung

See all articles