cari
Rumahhujung hadapan webView.jsBagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh)

vueBagaimana untuk berkomunikasi antara komponen ibu bapa dan anak? Artikel berikut akan memperkenalkan kepada anda cara komponen induk menghantar data kepada komponen anak, dan komponen anak menghantar data kepada komponen induk saya harap ia akan membantu anda!

Bagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh)

Pembolehubah dan data dalam setiap komponen adalah bebas Bagaimana jika komponen lain ingin mengakses data dalam komponen lain?

Bagaimana untuk menyelesaikan komunikasi antara komponen?

Penyelesaian:

Anda boleh menggunakan komponen induk untuk menghantar data kepada komponen anak dan anda juga boleh menggunakan komponen anak untuk menghantar data kepada komponen induk. Pendek kata, ia diturunkan dari bapa kepada anak lelaki, dan dari anak kepada bapa. (Belajar perkongsian video: tutorial video vue)

Mari kita bincangkan secara terperinci tentang cara komponen induk menghantar data kepada komponen anak.

Bapa kepada anak


Teori: Jika komponen A memperkenalkan dan menggunakan komponen B yang lain, maka komponen A ialah komponen induk dan komponen B adalah subkomponen.

Proses pelaksanaan:

   1.在父组件中引入子组件、注册子组件、使用子组件  
   2.在父组件中的子组件标签上自定义一个属性 左边是定义的名称,右边是父组件中的数据 例如
   <MyCon :list="list" />
   3.在子组件中用prpos接收父组件传来的数据 例如:prpos:[&#39;list&#39;]  注意这里面的名称必须要和父组件
   定义的名称一致才能可以。

Rajah prinsip

Bagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh)

Komponen induk Footer.vue

Sesuaikan sifat pada label komponen anak dalam komponen induk

<template>
  <div>
    <h1 id="父组件传子组件">父组件传子组件</h1>
    <!-- 使用组件   自定义属性 -->
    <MyCon :name="name" :age="age" />
  </div>
</template>
<script>
// 引入组件 --> 创建组件 -->  使用组件
// 引入组件
import MyCon from "./MyCon.vue";
export default {
   //  创建组件 
  components: { MyCon },
  // 数据
  data() {
    return {
      name: "张三",
      age: 38,
    };
  },
};
</script>

Komponen anak MyCon.vue

Gunakan prpos dalam komponen anak untuk menerima data daripada komponen induk

<template>
  <div>
    <h2 id="子组件">子组件</h2>
     // 直接在标签中使用
    <p>{{ name }} {{ age }}</p>
    <button @click="fn">点击修改props的值</button>
  </div>
</template>
<script>
export default {
  // 子组件接收父组件传来的数据
  props: ["name", "age"],
  methods: {
    fn() {
      this.name = "傻逼谭磊";
      this.age = 20
    },
  },
};
</script>

Kes kecil menggunakan penghantaran ibu bapa ke anak

Komponen induk App.vue

<template>
  <div style="border: 1px solid #ccc; margin: 5px; padding: 5px">
    <h1 id="父组件">父组件</h1>
    <!-- 1. 父传。自定义属性 -->
    <MyProduct
      v-for="item in list"
      :key="item.id"
      :price="item.proprice"
      :info="item.info"
      :goodname="item.proname"
    />
  </div>
</template>

<script>
// 导入->注册->使用
import MyProduct from "./MyProduct.vue";
export default {
  data() {
    return {
      list: [
        {
          id: 1,
          proname: "超级好吃的棒棒糖",
          proprice: 18.8,
          info: "开业大酬宾, 全场8折",
        },
        {
          id: 2,
          proname: "超级好吃的大鸡腿",
          proprice: 34.2,
          info: "好吃不腻, 快来买啊",
        },
        {
          id: 3,
          proname: "超级无敌的冰激凌",
          proprice: 14.2,
          info: "炎热的夏天, 来个冰激凌了",
        },
      ],
    };
  },
  components: { MyProduct },
};
</script>

<style>
</style>

Komponen kanak-kanak MyProduct.vue

<template>
  <div style="border: 1px solid #ccc; margin: 5px; padding: 5px">
    <h2 id="标题-nbsp-nbsp-goodname-nbsp">标题: {{ goodname }}</h2>
    <p>价格: {{ price }}元</p>
    <p>{{ info }}</p>
  </div>
</template>

<script>
export default {
  props: ["goodname", "price", "info"],
};
</script>

<style>
</style>

Paparan kesan

Bagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh)

Dari anak kepada bapa


Proses pelaksanaan

     1.在父组件中引入子组件、注册子组件、使用子组件  
     2.在父组件的子组件标签上加一个事件监听 例如:  <MyCon @abc="fn" />
     3.在子组件中触发这个自定义的监听事件。例如:this.$emit("abc",参数)

Rajah prinsip

Bagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh)

Komponen induk App.vue

dalam induk komponen Tambahkan pendengar acara pada label subkomponen untuk menerima data menggunakan parameter formal

<template>
  <div>
    <h1 id="父组件">父组件</h1>
    <!-- 1.添加事件监听 -->
    <!-- 当子组件发生了abc事件要执行fn函数 -->
    <MyCon @abc="fn" />
  </div>
</template>
<script>
// 引入子组件
import MyCon from "./MyCon.vue";
export default {
  methods: {
  // 形参接收
    fn(obj) {
      // 打印查看有没有获取到
      console.log("fn发生了abc事件", obj);
    },
  },
  components: { MyCon },
};
</script>

subkomponen MyCon.vue

untuk mencetuskan acara pendengaran tersuai ini dalam subkomponen

<template>
  <div>
    <h2 id="子组件">子组件</h2>
    <button @click="ConFn">子传父</button>
  </div>
</template>
<script>
export default {
  methods: {
    ConFn() {
      console.log("子组件click");
      // 2.触发abc事件
      this.$emit("abc", { name: "吊毛谭磊" });
    },
  },
};
</script>

Sarung produk menggunakan komponen induk

komponen induk App.vue

<template>
  <div style="border: 1px solid #ccc; margin: 5px; padding: 5px">
    <h1 id="父组件">父组件</h1>
    <!-- 1. 父传。自定义属性 -->
    <!-- 添加自定义事件 -->
    <MyProduct
      v-for="(item, idx) in list"
      :idx="idx"
      :key="item.id"
      :price="item.proprice"
      :info="item.info"
      :goodname="item.proname"
      @pdd="fn"
    />
  </div>
</template>

<script>
// 导入->注册->使用
import MyProduct from "./MyProduct.vue";
export default {
  data() {
    return {
      list: [
        {
          id: 1,
          proname: "超级好吃的棒棒糖",
          proprice: 18.8,
          info: "开业大酬宾, 全场8折",
        },
        {
          id: 2,
          proname: "超级好吃的大鸡腿",
          proprice: 34.2,
          info: "好吃不腻, 快来买啊",
        },
        {
          id: 3,
          proname: "超级无敌的冰激凌",
          proprice: 14.2,
          info: "炎热的夏天, 来个冰激凌了",
        },
      ],
    };
  },
  components: { MyProduct },
  methods: {
    fn(obj) {
      console.log("父组件,收到了pdd事件", obj);
      // 计算砍了几元 相减  再进行重新赋值
      this.list[obj.idx].proprice -= obj.ran;
    },
  },
};
</script>

<style>
</style>

Subkomponen MyProduct.vue

<template>
  <div style="border: 1px solid #ccc; margin: 5px; padding: 5px">
    <h2 id="标题-nbsp-nbsp-goodname-nbsp">标题: {{ goodname }}</h2>
    <p>价格: {{ price }}元</p>
    <p>{{ info }}</p>
    <button @click="bargain">随机砍价</button>
  </div>
</template>

<script>
export default {
  // 子接收
  props: ["goodname", "price", "info", "idx"],
  methods: {
    bargain() {
      // 随机数字
      const ran = Math.ceil(Math.random() * 10);
      // 触发自定义事件
      // 为了知道具体是哪个商品要减少价格,所以要回传idx下标
      this.$emit("pdd", { idx: this.idx, ran });
    },
  },
};
</script>

<style>
</style>

Paparan kesan

Bagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh)

(Kongsi video pembelajaran: Pembangunan bahagian hadapan web, Video pengaturcaraan asas)

Atas ialah kandungan terperinci Bagaimana untuk berkomunikasi antara komponen ibu bapa dan anak Vue? (dengan contoh). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:掘金社区. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Masa Depan Vue.js dan React: Trend dan RamalanMasa Depan Vue.js dan React: Trend dan RamalanMay 09, 2025 am 12:12 AM

Trend masa depan dan ramalan Vue.js dan React adalah: 1) Vue.js akan digunakan secara meluas dalam aplikasi peringkat perusahaan dan telah membuat terobosan dalam penjanaan tapak dan penjanaan tapak statik; 2) React akan berinovasi dalam komponen pelayan dan pemerolehan data, dan terus mengoptimumkan model keserasian.

Frontend Netflix: menyelam mendalam ke dalam timbunan teknologinyaFrontend Netflix: menyelam mendalam ke dalam timbunan teknologinyaMay 08, 2025 am 12:11 AM

Tumpukan teknologi front-end Netflix terutamanya berdasarkan React dan Redux. 1. REACT digunakan untuk membina aplikasi satu halaman berprestasi tinggi, dan meningkatkan kebolehgunaan semula kod dan penyelenggaraan melalui pembangunan komponen. 2. Redux digunakan untuk pengurusan negeri untuk memastikan perubahan keadaan dapat diramalkan dan dapat dikesan. 3. Toolchain termasuk Webpack, Babel, Jest dan Enzyme untuk memastikan kualiti dan prestasi kod. 4. Pengoptimuman prestasi dicapai melalui segmentasi kod, pemuatan malas dan penyampaian sisi pelayan untuk meningkatkan pengalaman pengguna.

Vue.js dan frontend: Membina antara muka pengguna interaktifVue.js dan frontend: Membina antara muka pengguna interaktifMay 06, 2025 am 12:02 AM

Vue.js adalah rangka kerja progresif yang sesuai untuk membina antara muka pengguna yang sangat interaktif. Fungsi terasnya termasuk sistem responsif, pembangunan komponen dan pengurusan penghalaan. 1) Sistem responsif menyedari pemantauan data melalui objek.defineproperty atau proksi, dan secara automatik mengemas kini antara muka. 2) Pembangunan komponen membolehkan antara muka dibahagikan kepada modul yang boleh diguna semula. 3) Vuerouter menyokong aplikasi satu halaman untuk meningkatkan pengalaman pengguna.

Apakah kelemahan Vuejs?Apakah kelemahan Vuejs?May 05, 2025 am 12:06 AM

Kelemahan utama Vue.js termasuk: 1. Ekosistem adalah agak baru, dan perpustakaan dan alat pihak ketiga tidak kaya dengan rangka kerja lain; 2. Kurva pembelajaran menjadi curam dalam fungsi kompleks; 3. Sokongan dan sumber masyarakat tidak begitu luas seperti reaksi dan sudut; 4. Masalah prestasi boleh ditemui dalam aplikasi besar; 5. Peningkatan versi dan cabaran keserasian lebih besar.

Netflix: Melancarkan Rangka Kerja FrontendnyaNetflix: Melancarkan Rangka Kerja FrontendnyaMay 04, 2025 am 12:16 AM

Netflix menggunakan React sebagai kerangka depannya. 1. Pembangunan komponen REACT dan mekanisme DOM maya meningkatkan prestasi dan kecekapan pembangunan. 2. Gunakan Webpack dan Babel untuk mengoptimumkan pembinaan dan penggunaan kod. 3. Gunakan Segmentasi Kod, Rendering Sider Server dan Strategi Caching untuk Pengoptimuman Prestasi.

Pembangunan Frontend dengan Vue.js: Kelebihan dan TeknikPembangunan Frontend dengan Vue.js: Kelebihan dan TeknikMay 03, 2025 am 12:02 AM

Sebab -sebab populariti Vue.js termasuk kesederhanaan dan pembelajaran mudah, fleksibiliti dan prestasi tinggi. 1) Reka bentuk kerangka progresifnya sesuai untuk pemula untuk belajar langkah demi langkah. 2) Pembangunan berasaskan komponen meningkatkan kebolehkerjaan kod dan kecekapan kerjasama pasukan. 3) Sistem responsif dan DOM maya meningkatkan prestasi rendering.

Vue.js vs React: kemudahan penggunaan dan keluk pembelajaranVue.js vs React: kemudahan penggunaan dan keluk pembelajaranMay 02, 2025 am 12:13 AM

Vue.js lebih mudah digunakan dan mempunyai lengkung pembelajaran yang lancar, yang sesuai untuk pemula; React mempunyai lengkung pembelajaran yang lebih curam, tetapi mempunyai fleksibiliti yang kuat, yang sesuai untuk pemaju yang berpengalaman. 1.vue.js mudah dimulakan melalui reka bentuk pengikatan data mudah dan progresif. 2. REACT memerlukan pemahaman tentang DOM dan JSX maya, tetapi memberikan kelebihan fleksibiliti dan prestasi yang lebih tinggi.

Vue.js vs React: Rangka kerja mana yang sesuai untuk anda?Vue.js vs React: Rangka kerja mana yang sesuai untuk anda?May 01, 2025 am 12:21 AM

Vue.js sesuai untuk pembangunan pantas dan projek kecil, sementara React lebih sesuai untuk projek besar dan kompleks. 1.vue.js adalah mudah dan mudah dipelajari, sesuai untuk pembangunan pesat dan projek kecil. 2. REACT adalah kuat dan sesuai untuk projek besar dan kompleks. 3. Ciri -ciri progresif Vue.js sesuai untuk memperkenalkan fungsi secara beransur -ansur. 4. DOM Componented dan Maya React berfungsi dengan baik apabila berurusan dengan aplikasi UI dan intensif data yang kompleks.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan