Heim  >  Artikel  >  Web-Frontend  >  Wie rufen Uniapp-Requisiten die Methode der übergeordneten Komponente auf?

Wie rufen Uniapp-Requisiten die Methode der übergeordneten Komponente auf?

PHPz
PHPzOriginal
2023-04-27 09:04:341169Durchsuche

Mit der rasanten Entwicklung der Front-End-Technologie erfordern immer mehr Anwendungen eine plattformübergreifende Entwicklung, um die Entwicklungseffizienz zu verbessern und die Entwicklungskosten zu senken. In dieser Hinsicht ist Uniapp zu einem beliebten Framework geworden. Aufgrund seiner plattformübergreifenden Funktionen und seines praktischen Entwicklungsmodells entscheiden sich viele Entwickler für die Verwendung von Uniapp für die Entwicklung. Bei der Entwicklung mit Uniapp treten jedoch viele Probleme auf, z. B. wie die Methode der übergeordneten Komponente über Requisiten aufgerufen wird.

In der Vue-Komponente können wir Daten übertragen und Methoden über Eltern-Kind-Komponenten aufrufen. Uniapp basiert ebenfalls auf Vue, sodass wir das gleiche Prinzip verwenden können, um die Methode zum Aufrufen der übergeordneten Komponente mithilfe von Requisiten in Uniapp zu implementieren.

Zuerst müssen wir eine Methode in der übergeordneten Komponente definieren und die Logik verarbeiten, die wir in der Methode benötigen. Zum Beispiel:

<template>
  <div>
    <Child :updateData="updateData"></Child>
  </div>
<template>
<script>
import Child from './Child.vue'

export default {
  components:{
    Child
  },
  methods:{
    updateData(data){
      console.log(data)
    }
  }
}
</script>

Wir definieren eine Methode namens updateData in der übergeordneten Komponente, deren Funktion darin besteht, die übergebenen Daten zu verarbeiten.

Als nächstes müssen wir Requisiten in der untergeordneten Komponente verwenden, um diese Methode zu empfangen, damit sie bei Bedarf aufgerufen werden kann.

<template>
  <div>
    <button @click="onClick">调用父组件方法</button>
  </div>
</template>
<script>
export default {
  props: {
    updateData: {
      type: Function,
      required: true
    }
  },
  methods:{
    onClick(){
      // 调用父组件的updateData方法
      this.updateData('Hello World')
    }
  }
}
</script>

In der untergeordneten Komponente verwenden wir Requisiten, um die von der übergeordneten Komponente übergebene updateData-Methode zu empfangen, rufen die onClick-Methode über das @click-Ereignis auf und verwenden this.updateData('Hello World' in die onClick-Methode) ruft die updateData-Methode der übergeordneten Komponente auf.

Schließlich müssen wir Daten in der übergeordneten Komponente an die untergeordnete Komponente übergeben, damit die Methode der übergeordneten Komponente in der untergeordneten Komponente aufgerufen werden kann.

<template>
  <div>
    <Child :updateData="updateData"></Child>
  </div>
<template>
<script>
import Child from './Child.vue'

export default {
  components:{
    Child
  },
  methods:{
    updateData(data){
      console.log(data)
    },
    sendDataToChild(){
      this.$refs.child.onClick()
    }
  },
  mounted(){
    this.sendDataToChild()
  }
}
</script>

In der übergeordneten Komponente definieren wir eine sendDataToChild-Methode, deren Funktion darin besteht, die onClick-Methode der untergeordneten Komponente über this.$refs.child.onClick() aufzurufen. Führen Sie gleichzeitig die sendDataToChild-Methode im bereitgestellten Lebenszyklus-Hook aus, damit sie nach dem Rendern der Unterkomponente automatisch ausgeführt werden kann.

Durch den obigen Prozess können wir Requisiten verwenden, um die Methode der übergeordneten Komponente in Uniapp aufzurufen. Es ist zu beachten, dass wir bei der Verwendung von Requisiten zur Kommunikation zwischen übergeordneten und untergeordneten Komponenten sicherstellen müssen, dass die Typen und Werte der Requisiten korrekt sind, da sonst unerwartete Fehler auftreten können.

Das obige ist der detaillierte Inhalt vonWie rufen Uniapp-Requisiten die Methode der übergeordneten Komponente auf?. 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