So implementieren Sie die VueJS-Ereignisüberwachung

青灯夜游
Freigeben: 2023-01-11 09:22:32
Original
3415 Leute haben es durchsucht

In vuejs können Sie die Anweisung „v-on“ verwenden, um die Ereignisüberwachung zu implementieren. Diese Anweisung wird verwendet, um Ereignis-Listener zu binden Etikettenvorlage: Verwenden Sie JavaScript, um den Code festzulegen, der beim Auslösen ausgeführt werden muss.

So implementieren Sie die VueJS-Ereignisüberwachung

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Vue-Version 2.9.6, DELL G3-Computer.

Nachdem das Rendern der Vorlage abgeschlossen ist, können die Ereignisbindung und -überwachung durchgeführt werden. Die v-on-Direktive dient zur Überwachung von DOM-Ereignissen und wird normalerweise direkt innerhalb der Vorlage verwendet.

<button v-on:click="say">Say</button>
Nach dem Login kopieren

Methode und Inline-Anweisungsprozessor

Binden Sie die Methode in den Stärkeoptionsattributmethoden über v-on als Ereignishandler. Der v-on: Post-Parameter akzeptiert alle nativen Ereignisnamen.

    <button v-on:click = "say">Say</button>
    var vm = new Vue({
        el: "#app",
        data: {
            msg:"hello vue.js"
        },
        methods:{
            say:function(){
                alert(this.msg);
            }
        }
    })
Nach dem Login kopieren

v-on-Abkürzung: @. @click="say"

v-on unterstützt Inline-JavaScript-Anweisungen, jedoch nur eine Anweisung.

    <button v-on:click = "sayFrom(&#39;from param&#39;)">Say</button>
    var vm = new Vue({
        el: "#app",
        data: {
            msg:"hello vue.js"
        },
        methods:{
            sayFrom:function(from){
                alert(this.msg + &#39;&#39; + from);
            }
        }
    })
Nach dem Login kopieren

Wenn Sie Methoden, Funktionen und Inline-JavaScript direkt an Räume binden, müssen Sie möglicherweise das native DOM-Ereignisobjekt abrufen.

   <button v-on:click = "showEvent">Event</button> 
   <button v-on:click = "showEvent($event)">event</button>
   <button v-on:click = "showEvent()">Say</button>  //这样写获取不到event
    var vm = new Vue({
        el: "#app",
        methods:{
            showEvent:function(event){
                console.log(event);
            }
        }
    })
Nach dem Login kopieren

Sie können mehrere identische Ereignisfunktionen über v-on an dasselbe Element binden, und die Ausführungsreihenfolge ist sequenzielle Ausführung . .

Ereignismodifikatoren

1.stop: Aufruf von event.stopPropagation().

<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>
Nach dem Login kopieren

2. .prevent: Aufruf von event.preventDefault().

    <!-- 提交事件不再重载页面 -->
    <form v-on:submit.prevent="onSubmit"></form>
    <!-- 修饰符可以串联  -->
    <a v-on:click.stop.prevent="doThat"></a>
    <!-- 只有修饰符 -->
    <form v-on:submit.prevent></form>
Nach dem Login kopieren

3 Hörer.

  <!-- 添加事件侦听器时使用事件捕获模式 -->
    <div v-on:click.capture="doThis">...</div>
Nach dem Login kopieren

4.self: Der Rückruf wird nur ausgelöst, wenn das Ereignis vom Listening-Element selbst ausgelöst wird.

   <!-- 只当事件在该元素本身(比如不是子元素)触发时触发回调 -->
    <div v-on:click.self="doThat">...</div>
Nach dem Login kopieren

5.once:

 <!-- 点击事件将只会触发一次 -->
    <a v-on:click.once="doThis"></a>
Nach dem Login kopieren

Bei der Verwendung von Modifikatoren ist die Reihenfolge wichtig, die entsprechenden Codes werden in derselben Reihenfolge generiert. Daher verhindert die Verwendung von @click.prevent.self alle Klicks, während @click.self.prevent nur Klicks auf das Element verhindert.

   //例子
    var vm = new Vue({
        el: &#39;#app&#39;,
        methods:{
            saySelf(msg) {
                alert(msg);
            }
        }
    });
    //HTML代码
    <div v-on:click="say(&#39;click from inner&#39;)" v-on:click.self="saySelf(&#39;click from self&#39;)">
        <button v-on:click="saySelf(&#39;button click&#39;)">button</button>
        <button v-on:click.stop="saySelf(&#39;just button click&#39;)">button</button>
    </div>
Nach dem Login kopieren

Schlüsselwertmodifikator

Beim Abhören von Tastaturereignissen müssen Sie allgemeine Schlüsselwerte überwachen.

    <input v-on:keyup.13 = "submit" />  //监听input的输入,当输入回车时触发submit函数。
Nach dem Login kopieren

Es ist schwierig, sich alle KeyCide zu merken, daher stellt Vue Aliase für die am häufigsten verwendeten Schlüssel bereit.

    <!-- 同上 -->
    <input v-on:keyup.enter="submit">
    <!-- 缩写语法 -->
    <input @keyup.enter="submit">
Nach dem Login kopieren

.enter
.tab
.delete (erfasst die Tasten „Löschen“ und „Rücktaste“)
.esc
.space
.up
.down
.left
.right
Kann über die globale Konfiguration aufgerufen werden. keyCodes-Objekt Benutzerdefinierter Schlüsselwertmodifikator-Alias

    // 可以使用 v-on:keyup.f1
    Vue.config.keyCodes.f1 = 112
Nach dem Login kopieren
Unterschiede zur herkömmlichen Ereignisbindung

1 Ereignisse müssen nicht manuell verwaltet werden. Wenn das ViewModel zerstört wird, werden alle Event-Handler automatisch gelöscht, was uns davon befreit, DOM-gebundene Ereignisse abzurufen und sie dann unter bestimmten Umständen zu entbinden.

2. Entkopplung. ViewModel-Code ist rein logischer Code und hat nichts mit DOM zu tun, was für uns hilfreich ist, um automatisierte Testfälle zu schreiben.

vue.extend()

Um Unterkomponenten wiederzuverwenden, stellt vue.js die Methode Vue.extend(options) bereit, die eine „Unterklasse“ des grundlegenden Vue-Konstruktors und Parameteroptionsobjekts erstellt und direkt deklariert die Vue-Instanz Die Parameterobjekte sind grundsätzlich gleich.

    var Child = Vue.extend({
        teplate:&#39;#child&#39;, //不同的是,el和data选项需要通过函数返回值赋值,避免多个组件实例共用一个数据
        data:function(){
            return {
                ...
            }
        },
        ...
    })
    Vue.component(&#39;child&#39;,child)  //全局注册子组件
    <child ...></child>  //子组件在其他组件内的调用方式
Nach dem Login kopieren
Verwandte Empfehlungen: „

vue.js Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die VueJS-Ereignisüberwachung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!