Heim Web-Frontend View.js Verschaffen Sie sich ein umfassendes Verständnis des V-Modells in Vue!

Verschaffen Sie sich ein umfassendes Verständnis des V-Modells in Vue!

Jan 12, 2022 pm 06:38 PM
v-model vue

Kennen Sie V-Model? Der folgende Artikel stellt Ihnen das V-Modell in Vue vor und vermittelt Ihnen ein umfassendes Verständnis des V-Modells. Ich hoffe, dass er Ihnen hilfreich sein wird.

Verschaffen Sie sich ein umfassendes Verständnis des V-Modells in Vue!

Zunächst müssen wir verstehen, welche Rolle das V-Modell beim Lernen spielt.

Die v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value attribute 用于不同的目的model-Option einer Komponente kann verwendet werden, um solche Konflikte zu vermeiden --- Dies ist die gefundene Antwort auf der offiziellen Vue-Website.

Zweitens müssen wir die Essenz des V-Modells und seine Implementierungsprinzipien kennen

Meiner Meinung nach ist das V-Modell selbst ein syntaktischer Zucker, der uns tatsächlich eine integrierte Vue-Anweisung liefert Auf diese Weise wird nicht nur unser Code vereinfacht, sondern wir können auch verstehen, wie dieser Befehl verwendet wird.

Mit der V-Modell-Anweisung können wir den Inhalt, den wir in das Eingabefeld eingegeben haben, direkt abrufen und die Eingabe konvertieren. Der Inhalt wird in gespeichert Wenn sich der Eingabewert ändert, werden die Daten automatisch aktualisiert und die entsprechende Ansicht aktualisiert und gerendert.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  <div>

    <p>{{model}}</p>

    <!-- v-model -->

    <input> 

  </div>

 

<script>

export default {

  data() {

    return {

      model:&#39;&#39;,

    }

  },

}

</script>

Nach dem Login kopieren

Zwei-Wege-Bindung MVVMDas Prinzip besteht eigentlich darin, die Daten zu überwachen und dann die Seitenansicht zu aktualisieren, wenn sich die Daten ändern.

MVVM-Flussdiagramm

Die folgende Abbildung zeigt das Prinzip der bidirektionalen Bindung. Durch Datenhijacking und Vorlagenanalyse überwachen wir unsere Datenaktualisierungsansicht durch einen schrittweisen Prozess

Observer-Daten-Hijacking-Code

Verschaffen Sie sich ein umfassendes Verständnis des V-Modells in Vue!

Observer ist eigentlich ein Beobachter. Er überwacht jedes Element in unseren Daten durch Schleifendurchlauf, und Aktualisierungen werden an Abonnenten über die Methode notify gesendet Gleichzeitig führt

Compile

unsere Textkompilierung durch, um einige Ansichten zu aktualisieren.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

<strong>class Observe {

    constructor(vm) {

        this.walk(vm.data)

    }

    // 循环遍历 让 data 里每一个key 都监听

    walk(data) {

        Object.keys(data).forEach( key => {

            this.defineReactive(data, key, data[key])

        })

    }

 

    // 定义响应式  这个函数也是响应式的核心函数

    defineReactive(data, key, value) {

        let dep = new Dep()

        Object.defineProperty(data, key, {

            get() {

                console.log(&#39;触发 get 收集依赖&#39;);

                // 收集依赖

                if( Dep.target ) {

                    // 添加订阅者

                    dep.addSub(Dep.target)

                }

                return value

            },

            set(newValue) {

                console.log(value, &#39;触发 set 派发更新&#39;);

                // 新值覆盖旧值

                value = newValue

                // 派发更新

                dep.notify()

            },

        })

    }

}</strong>

Nach dem Login kopieren
Watcher-Ansichtsaktualisierung

Watcher ist unser Abonnent, und die Ansicht wird durch die update-Methode aktualisiert

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

    constructor(vm, exp, cb ) {

        this.vm = vm;

        this.exp = exp;

        this.cb = cb;

        this.value = this.get()

    }

    // 更新

    update() {

        this.run()

    }

    // 更新 DOM

    run() {

        const value = this.get()

        // 新旧值进行比对

        if( value !== this.value ) {

            // 调用回调函数

            this.cb.call(this.vm, value)

        }

    }

 

    // 收集依赖

    get() {

        Dep.target = this

        let value = this.vm.data[this.exp]

        Dep.target = null;

        return value

    }

}

Nach dem Login kopieren

Dies ist ein Teil meines Verständnisses der bidirektionalen Bindung, und das Schreiben ist nicht umfassend genug. Ich hoffe, jeder kann mich kritisieren und korrigieren, danke. 【Verwandte Empfehlungen:

vue.js Tutorial

Das obige ist der detaillierte Inhalt vonVerschaffen Sie sich ein umfassendes Verständnis des V-Modells in Vue!. 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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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 verwenden Sie Echarts in Vue So verwenden Sie Echarts in Vue May 09, 2024 pm 04:24 PM

Durch die Verwendung von ECharts in Vue können Sie Ihrer Anwendung ganz einfach Datenvisualisierungsfunktionen hinzufügen. Zu den spezifischen Schritten gehören: Installieren von ECharts- und Vue ECharts-Paketen, Einführung von ECharts, Erstellen von Diagrammkomponenten, Konfigurieren von Optionen, Verwenden von Diagrammkomponenten, Anpassen von Diagrammen an Vue-Daten, Hinzufügen interaktiver Funktionen und Verwenden erweiterter Verwendungsmöglichkeiten.

Die Rolle des Exportstandards in Vue Die Rolle des Exportstandards in Vue May 09, 2024 pm 06:48 PM

Frage: Welche Rolle spielt der Exportstandard in Vue? Detaillierte Beschreibung: Exportstandard definiert den Standardexport der Komponente. Beim Importieren werden Komponenten automatisch importiert. Vereinfachen Sie den Importvorgang, verbessern Sie die Übersichtlichkeit und vermeiden Sie Konflikte. Wird häufig zum Exportieren einzelner Komponenten verwendet, wobei sowohl benannte als auch Standardexporte verwendet werden und globale Komponenten registriert werden.

So verwenden Sie die Kartenfunktion in Vue So verwenden Sie die Kartenfunktion in Vue May 09, 2024 pm 06:54 PM

Die Kartenfunktion von Vue.js ist eine integrierte Funktion höherer Ordnung, die ein neues Array erstellt, wobei jedes Element das transformierte Ergebnis jedes Elements im ursprünglichen Array ist. Die Syntax lautet map(callbackFn), wobei callbackFn jedes Element im Array als erstes Argument empfängt, optional den Index als zweites Argument, und einen Wert zurückgibt. Die Kartenfunktion ändert das ursprüngliche Array nicht.

Der Unterschied zwischen Event und $event in Vue Der Unterschied zwischen Event und $event in Vue May 08, 2024 pm 04:42 PM

In Vue.js ist event ein natives JavaScript-Ereignis, das vom Browser ausgelöst wird, während $event ein Vue-spezifisches abstraktes Ereignisobjekt ist, das in Vue-Komponenten verwendet wird. Im Allgemeinen ist die Verwendung von $event bequemer, da es so formatiert und erweitert ist, dass es die Datenbindung unterstützt. Verwenden Sie „event“, wenn Sie auf bestimmte Funktionen des nativen Ereignisobjekts zugreifen müssen.

Die Rolle von Onmount in Vue Die Rolle von Onmount in Vue May 09, 2024 pm 02:51 PM

onMounted ist ein Lebenszyklus-Hook für die Komponentenmontage in Vue. Seine Funktion besteht darin, Initialisierungsvorgänge durchzuführen, nachdem die Komponente im DOM bereitgestellt wurde, z. B. das Abrufen von Referenzen auf DOM-Elemente, das Festlegen von Daten, das Senden von HTTP-Anforderungen, das Registrieren von Ereignis-Listenern usw. Es wird nur einmal aufgerufen, wenn die Komponente gemountet wird. Wenn Sie Vorgänge ausführen müssen, nachdem die Komponente aktualisiert wurde oder bevor sie zerstört wurde, können Sie andere Lebenszyklus-Hooks verwenden.

Der Unterschied zwischen Export und Exportstandard in Vue Der Unterschied zwischen Export und Exportstandard in Vue May 08, 2024 pm 05:27 PM

Es gibt zwei Möglichkeiten, Module in Vue.js zu exportieren: Export und Export Default. export wird zum Exportieren benannter Entitäten verwendet und erfordert die Verwendung von geschweiften Klammern; export default wird zum Exportieren von Standardentitäten verwendet und erfordert keine geschweiften Klammern. Beim Importieren müssen per Export exportierte Entitäten ihre Namen verwenden, während per Exportstandard exportierte Entitäten implizit verwendet werden können. Es wird empfohlen, die Export-Standardeinstellung für Module zu verwenden, die mehrmals importiert werden müssen, und die Export-Standardeinstellung für Module, die nur einmal exportiert werden müssen.

Was sind Hooks in Vue Was sind Hooks in Vue May 09, 2024 pm 06:33 PM

Vue-Hooks sind Rückruffunktionen, die Aktionen bei bestimmten Ereignissen oder Lebenszyklusphasen ausführen. Dazu gehören Lebenszyklus-Hooks (wie beforeCreate, mount, beforeDestroy), Event-Handling-Hooks (wie click, input, keydown) und benutzerdefinierte Hooks. Hooks verbessern die Komponentenkontrolle, reagieren auf Komponentenlebenszyklen, verarbeiten Benutzerinteraktionen und verbessern die Wiederverwendbarkeit von Komponenten. Um Hooks zu verwenden, definieren Sie einfach die Hook-Funktion, führen Sie die Logik aus und geben Sie einen optionalen Wert zurück.

Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? May 09, 2024 pm 02:33 PM

Vue.js-Ereignismodifikatoren werden verwendet, um bestimmte Verhaltensweisen hinzuzufügen, darunter: Verhindern von Standardverhalten (.prevent), Stoppen von Ereignisblasen (.stop), Einmaliges Ereignis (.once), Erfassen von Ereignissen (.capture), Passives Abhören von Ereignissen (.passive), Adaptiv Modifikator (.self)Schlüsselmodifikator (.key)

See all articles