Rumah > masalah biasa > teks badan

Apakah cara untuk menghantar nilai dalam komponen vue?

DDD
Lepaskan: 2023-07-03 11:23:13
asal
1873 orang telah melayarinya

Kaedah pemindahan nilai komponen Vue: 1. Gunakan prop untuk menghantar data Komponen induk menghantar data kepada komponen anak melalui atribut HTML, dan komponen anak menerima data yang diluluskan melalui prop 2. Gunakan $emit untuk mencetuskan acara untuk menghantar data , sub-komponen menggunakan $emit untuk mencetuskan peristiwa tersuai, dan komponen induk menggunakan v-on untuk mendengar peristiwa tersuai sub-komponen 3. Gunakan provide/inject untuk menghantar nilai merentas peringkat; komponen induk menyediakan data melalui penyediaan, dan sub-komponen menggunakan suntikan untuk Menerima data.

Apakah cara untuk menghantar nilai dalam komponen vue?

Persekitaran pengendalian tutorial ini: sistem Windows 10, komputer Dell g3.

Pemindahan nilai antara komponen Vue boleh dicapai dalam tiga cara: props, $emit dan provide/inject.

Gunakan prop untuk menghantar data:

Salurkan data kepada komponen anak melalui atribut HTML dalam komponen induk. Komponen kanak-kanak menerima data yang dihantar oleh komponen induk melalui prop.

Komponen induk:

<template>
  <div>
    <ChildComponent :message="message"/>
  </div>
</template>
<script>
import ChildComponent from &#39;ChildComponent.vue&#39;;
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      message: &#39;Hello&#39;
    }
  }
}
</script>
Salin selepas log masuk

Komponen anak:

<template>
  <div>
    {{ message }}
  </div>
</template>
<script>
export default {
  props: {
    message: String
  }
}
</script>
Salin selepas log masuk

Gunakan $emit untuk mencetuskan peristiwa untuk menghantar data:

Gunakan $emit dalam komponen anak untuk mencetuskan peristiwa tersuai dan lulus data yang perlu dihantar sebagai parameter. Komponen induk menggunakan v-on untuk mendengar acara tersuai komponen anak dan mendapatkan data yang diluluskan.

Komponen induk:

<template>
  <div>
    <ChildComponent v-on:custom-event="updateData"/>
  </div>
</template>
<script>
import ChildComponent from &#39;ChildComponent.vue&#39;;
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      message: &#39;&#39;
    }
  },
  methods: {
    updateData(data) {
      this.message = data;
    }
  }
}
</script>
Salin selepas log masuk

Komponen anak:

<template>
  <div>
    <button @click="updateMessage">Update Message</button>
  </div>
</template>
<script>
export default {
  methods: {
    updateMessage() {
      this.$emit(&#39;custom-event&#39;, &#39;New Message&#39;);
    }
  }
}
</script>
Salin selepas log masuk

Gunakan provide/inject untuk pemindahan nilai peringkat silang:

Sediakan data melalui provide dalam komponen induk, dan kemudian gunakan inject untuk menerima data dalam komponen anak .

Komponen induk:

<template>
  <div>
    <ChildComponent />
  </div>
</template>
<script>
import ChildComponent from &#39;ChildComponent.vue&#39;;
export default {
  components: {
    ChildComponent
  },
  provide() {
    return {
      message: &#39;Hello&#39;
    }
  }
}
</script>
Salin selepas log masuk

Komponen kanak-kanak:

<template>
  <div>
    {{ message }}
  </div>
</template>
<script>
export default {
  inject: [&#39;message&#39;]
}
</script>
Salin selepas log masuk

Di atas ialah tiga cara komponen Vue menghantar nilai. Mengikut senario dan keperluan tertentu, anda boleh memilih kaedah yang sesuai untuk memindahkan data antara komponen.

Atas ialah kandungan terperinci Apakah cara untuk menghantar nilai dalam komponen vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:Vue,Vue组件,
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!