Heim  >  Artikel  >  Web-Frontend  >  So verwenden Sie übergeordnete Komponentenmethoden in Vue

So verwenden Sie übergeordnete Komponentenmethoden in Vue

PHPz
PHPzOriginal
2023-04-18 15:20:191443Durchsuche

Vue.js ist eines der beliebtesten JavaScript-Frameworks in der aktuellen Webentwicklung. Es verfügt über viele leistungsstarke Funktionen und Mechanismen, von denen die Verwendung von Komponenten am häufigsten verwendet wird. In Vue können Komponenten problemlos logische Datenbindung und Ereignisreaktion implementieren. Wenn Sie jedoch in einer untergeordneten Komponente auf die Methoden oder Daten der übergeordneten Komponente zugreifen müssen, müssen Sie möglicherweise einige spezielle Techniken verwenden. In diesem Artikel wird die Verwendung der übergeordneten Komponentenmethode in Vue vorgestellt.

1. Übergabe von übergeordneten Komponentenmethoden

In Vue können die Methoden und Daten von übergeordneten Komponenten über Komponentenattribute (Requisiten) an untergeordnete Komponenten übergeben werden. Angenommen, es gibt eine übergeordnete Komponente, die eine Taschenrechnerschaltfläche und einen Anzeigebereich enthält, wie unten gezeigt:

<template>
  <div>
    <button @click="add">+</button>
    <button @click="sub">-</button>
    <div>{{ count }}</div>
    <child :increment="add"></child>
  </div>
</template>

<script>
import Child from './Child.vue'

export default {
  components: {
    Child
  },
  data() {
    return {
      count: 0
    }
  },
  methods: {
    add() {
      this.count++
    },
    sub() {
      this.count--
    }
  }
}
</script>

In der übergeordneten Komponente definieren wir zwei Methoden add und sub, die zum Erhöhen und Reduzieren verwendet werden die Anzahl der Zähler zählt. Gleichzeitig haben wir eine untergeordnete Komponente Child erstellt und die Methode add der übergeordneten Komponente als Attributinkrement an die untergeordnete Komponente übergeben. In der untergeordneten Komponente können wir diese Eigenschaft über Requisiten empfangen und über die Methode $emit an die übergeordnete Komponente weiterleiten.

<template>
  <div>
    <button @click="increment()">+1</button>
    <button @click="decrement()">-1</button>
  </div>
</template>

<script>
export default {
  props: {
    increment: {
      type: Function
    }
  },
  methods: {
    increment() {
      this.$emit('increment')
    },
    decrement() {
      this.$emit('decrement')
    }
  }
}
</script>

In der Unterkomponente definieren wir zwei Methoden inkrementieren und dekrementieren, mit denen die Anzahl der Zähler erhöht bzw. verringert wird. Gleichzeitig haben wir das von der übergeordneten Komponente über Requisiten übergebene Attributinkrement erhalten und die Methode $emit verwendet, um das Inkrementereignis in dieser Methode auszulösen.

Auf diese Weise realisieren wir die Methodenübertragung zwischen Komponenten, dh die untergeordnete Komponente kann das Ereignis über die Emit-Methode an die übergeordnete Komponente übergeben und die entsprechende Methode in der übergeordneten Komponente auslösen.

2. Methoden der übergeordneten Komponente aufrufen

Zusätzlich zur Übergabe von Methoden der übergeordneten Komponente an untergeordnete Komponenten über Komponentenattribute können Sie in Vue die übergeordnete Komponente auch direkt in der untergeordneten Komponente aufrufen Die Methode der Komponente, ohne dass das Ereignis der übergeordneten Komponente über die Emit-Methode ausgelöst werden muss. Im Folgenden zeigen wir anhand eines Falls, wie die Methode der übergeordneten Komponente direkt in der untergeordneten Komponente aufgerufen wird.

Angenommen, wir haben eine übergeordnete Komponente, die einen Bearbeitungsbereich und eine Schaltfläche zum Speichern enthält und eine Methode namens „Speichern“ definiert, um den Inhalt des Bearbeitungsbereichs auf dem Backend-Server zu speichern. Wie unten gezeigt:

<template>
  <div>
    <textarea v-model="content"></textarea>
    <button @click="saveData">保存</button>
    <child :save-method="save"></child>
  </div>
</template>

<script>
import Child from './Child.vue'

export default {
  components: {
    Child
  },
  data() {
    return {
      content: ''
    }
  },
  methods: {
    save() {
      // 将编辑区域内容保存到数据库中
    }
  }
}
</script>

In der übergeordneten Komponente definieren wir eine Methode namens save und übergeben sie als Attribut save-method an die untergeordnete Komponente Child.

In der untergeordneten Komponente können wir das von der übergeordneten Komponente über Requisiten übergebene Attribut save-method empfangen und die Methode bei Bedarf direkt aufrufen. Wie unten gezeigt:

<template>
  <div>
    <button @click="save()">保存</button>
  </div>
</template>

<script>
export default {
  props: {
    saveMethod: {
      type: Function,
      required: true
    }
  },
  methods: {
    save() {
      this.saveMethod()
    }
  }
}
</script>

In der untergeordneten Komponente erhalten wir das von der übergeordneten Komponente über Requisiten übergebene Attribut save-method und rufen die Methode in der Methode auf. Auf diese Weise kann die Funktion des direkten Aufrufs der Methode der übergeordneten Komponente realisiert werden.

Zusammenfassung

In diesem Artikel wird die Verwendung übergeordneter Komponentenmethoden in Vue vorgestellt, hauptsächlich einschließlich der Übergabe von Komponenteneigenschaften und des direkten Aufrufs übergeordneter Komponentenmethoden. Im Vue-Entwicklungsprozess ist der Informationstransfer zwischen Komponenten sehr wichtig. Wenn Sie den von Vue bereitgestellten Komponentenkommunikationsmechanismus flexibel nutzen, können Sie eine effizientere und flexiblere Komponentenentwicklung erreichen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie übergeordnete Komponentenmethoden in Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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