cari
Rumahhujung hadapan webView.jsKaedah pelaksanaan pemindahan data komponen dan pemindahan peristiwa dalam dokumentasi Vue

Vue ialah rangka kerja bahagian hadapan yang popular Ia mempunyai ciri komponen, membolehkan pembangun menguraikan halaman yang kompleks kepada beberapa modul kecil dan bebas. Dalam Vue, pemindahan data dan pemindahan peristiwa antara komponen adalah topik yang sangat penting Dalam artikel ini, kami akan memperkenalkan secara terperinci kaedah pelaksanaan pemindahan data komponen dan pemindahan peristiwa dalam Vue.

1. Pemindahan data komponen

Dalam Vue, pemindahan data komponen dibahagikan kepada dua kategori, satu pemindahan komponen induk kepada komponen anak, dan satu lagi pemindahan anak penghantaran komponen kepada induk.

1. Komponen induk menghantar data kepada komponen anak

Komponen induk perlu menggunakan pilihan prop untuk menghantar data kepada komponen anak ialah cara untuk komponen anak menerima data yang dihantar oleh komponen induk. Hantar data kepada komponen anak melalui v-bind: nama atribut dalam komponen induk, dan terima data melalui pilihan props dalam komponen anak.

Pertama lihat kod dalam komponen induk:

<template>
  <div>
    <child-component :title="title"></child-component>
  </div>
</template>

<script>
import ChildComponent from './child.vue'

export default {
  components: { ChildComponent },
  data () {
    return {
      title: 'this is the title'
    }
  }
}
</script>

Dalam kod di atas, kami mentakrifkan komponen utama dan menghantar atribut tajuk kepada komponen kanak-kanak melalui komponen v-bind.

Kemudian lihat kod subkomponen:

<template>
  <div>
    <h1 id="title">{{ title }}</h1>
  </div>
</template>

<script>
export default {
  props: {
    title: {
      type: String,
      required: true
    }
  }
}
</script>

Dalam kod di atas, kami mentakrifkan subkomponen dan menerima atribut tajuk yang diluluskan oleh komponen induk melalui pilihan props.

2. Subkomponen menghantar data kepada komponen induk

Untuk menghantar data daripada subkomponen kepada komponen induk, anda perlu menggunakan kaedah $emit ialah cara untuk subkomponen menghantar data kepada induk komponen. Gunakan kaedah $emit dalam komponen anak untuk mencetuskan peristiwa tersuai dan lulus data yang perlu dihantar Dengar peristiwa tersuai ini dalam komponen induk melalui nama @event dan terima data yang diluluskan oleh komponen anak dalam fungsi tindak balas acara.

Lihat kod dalam subkomponen dahulu:

<template>
  <div>
    <button @click="increment">{{ count }}</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      count: 0
    }
  },
  methods: {
    increment () {
      this.count++
      this.$emit('increment', this.count)
    }
  }
}
</script>

Dalam kod di atas, kami mentakrifkan subkomponen dan menggunakan kaedah $emit untuk mencetuskan kenaikan acara tersuai apabila butang diklik Dan lulus nilai kiraan semasa sebagai parameter kepada komponen induk.

Kemudian lihat kod komponen induk:

<template>
  <div>
    <h1 id="totalCount">{{ totalCount }}</h1>
    <child-component @increment="onChildIncrement"></child-component>
  </div>
</template>

<script>
import ChildComponent from './child.vue'

export default {
  components: { ChildComponent },
  data () {
    return {
      totalCount: 0
    }
  },
  methods: {
    onChildIncrement (count) {
      this.totalCount += count
    }
  }
}
</script>

Dalam kod di atas, kami mentakrifkan komponen induk dan apabila mendengar peristiwa kenaikan komponen anak, lulus nilai kiraan sebagai parameter kepada Dalam fungsi respons onChildIncrement, dan kemas kini nilai totalCount dalam fungsi respons.

2. Penghantaran acara komponen

Dalam Vue, penghantaran acara antara komponen boleh dicapai melalui bas acara dan vuex.

1. Bas acara

Bas acara ialah kaedah penghantaran acara yang mudah, dan semua komponen boleh mendaftarkan acara atau mencetuskan acara ke bas acara. Dalam Vue, anda boleh menggunakan sifat Vue.prototype.$bus untuk mencipta bas acara.

Mari kita lihat dahulu cara menggunakan bas acara:

// main.js中创建事件总线
import Vue from 'vue'

Vue.prototype.$bus = new Vue()

// 在需要传递事件的组件中注册事件和触发事件
this.$bus.$emit('my-event', data)

this.$bus.$on('my-event', (data) => { ... })

Dalam kod di atas, kami mencipta bas acara melalui sifat Vue.prototype.$bus dalam fail main.js, dan kemudian dalam Dalam komponen yang perlu lulus acara, cetuskan acara tersuai acara saya melalui kaedah $emit, dan hantar data yang perlu dihantar sebagai parameter kepada fungsi tindak balas acara itu; perlu menerima acara, mendengar acara tersuai my- melalui kaedah $on, dan menerima data yang diluluskan dalam fungsi tindak balas acara.

2.vuex

vuex ialah penyelesaian pengurusan keadaan yang disyorkan secara rasmi. Ia meletakkan keadaan semua komponen dalam pepohon keadaan global Semua komponen boleh mengakses keadaan global daripada Dapatkan dan kemas kini status pokok itu. Dalam vuex, anda boleh menggunakan objek kedai untuk menyimpan keadaan global dan mengubah suai keadaan global melalui mutasi, tindakan dan pengambil.

Mari kita lihat dahulu cara menggunakan vuex:

// store.js文件
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    asyncIncrement (context) {
      setTimeout(() => {
        context.commit('increment')
      }, 1000)
    }
  },
  getters: {
    doubleCount (state) {
      return state.count * 2
    }
  }
})

// 在组件中使用vuex
import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'

export default {
  computed: {
    ...mapState({
      count: state => state.count
    }),
    ...mapGetters([
      'doubleCount'
    ])
  },
  methods: {
    ...mapMutations([
      'increment'
    ]),
    ...mapActions([
      'asyncIncrement'
    ])
  }
}

Dalam kod di atas, kami mentakrifkan objek kedai yang menyimpan keadaan global dalam fail store.js dan menggunakan mutasi, tindakan dan getter untuk mengubah suai dan mendapatkan keadaan global; dalam komponen, memetakan keadaan, fungsi pengubahsuaian dan fungsi tindakan dalam stor melalui fungsi tambahan seperti mapState, mapMutations, mapActions dan mapGetters, dan menggunakannya dalam komponen.

Kesimpulan

Dalam Vue, pemindahan data dan pemindahan acara antara komponen adalah topik yang sangat penting Untuk senario dan keperluan yang berbeza, kita boleh menggunakan prop, $emit, bas acara dan vuex serta kaedah lain untuk. mencapai pemindahan data dan pemindahan peristiwa. Menguasai kemahiran ini membolehkan kami mengatur dan mengurus aplikasi Vue kami dengan lebih fleksibel.

Atas ialah kandungan terperinci Kaedah pelaksanaan pemindahan data komponen dan pemindahan peristiwa dalam dokumentasi Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
VUE.JS vs Rangka Kerja Backend: Menjelaskan perbezaanVUE.JS vs Rangka Kerja Backend: Menjelaskan perbezaanApr 25, 2025 am 12:05 AM

Vue.js adalah kerangka depan, dan rangka kerja belakang digunakan untuk mengendalikan logik sisi pelayan. 1) Vue.js memberi tumpuan kepada membina antara muka pengguna dan memudahkan pembangunan melalui pengikatan data komponen dan responsif. 2) Rangka kerja back-end seperti Express dan Django mengendalikan permintaan HTTP, operasi pangkalan data dan logik perniagaan, dan dijalankan di pelayan.

Vue.js dan stack frontend: Memahami sambunganVue.js dan stack frontend: Memahami sambunganApr 24, 2025 am 12:19 AM

Vue.js disepadukan dengan tumpuan teknologi front-end untuk meningkatkan kecekapan pembangunan dan pengalaman pengguna. 1) Alat Pembinaan: Mengintegrasikan dengan Webpack dan Rollup untuk mencapai pembangunan modular. 2) Pengurusan Negeri: Bersepadu dengan VUEX untuk menguruskan status aplikasi yang kompleks. 3) Routing: Mengintegrasikan dengan Vuerouter untuk merealisasikan penghalaan aplikasi tunggal halaman. 4) Preprocessor CSS: Menyokong SASS dan kurang untuk meningkatkan kecekapan pembangunan gaya.

Netflix: Meneroka Penggunaan React (atau Rangka Kerja Lain)Netflix: Meneroka Penggunaan React (atau Rangka Kerja Lain)Apr 23, 2025 am 12:02 AM

Netflix memilih React untuk membina antara muka penggunanya kerana reka bentuk komponen React dan mekanisme DOM maya dapat mengendalikan antara muka yang kompleks dan kemas kini yang kerap. 1) Reka bentuk berasaskan komponen membolehkan Netflix memecah antara muka ke dalam widget yang boleh diurus, meningkatkan kecekapan pembangunan dan pemeliharaan kod. 2) Mekanisme DOM maya memastikan kelancaran dan prestasi tinggi antara muka pengguna Netflix dengan meminimumkan operasi DOM.

Vue.js dan frontend: menyelam mendalam ke dalam rangka kerjaVue.js dan frontend: menyelam mendalam ke dalam rangka kerjaApr 22, 2025 am 12:04 AM

Vue.js disukai oleh pemaju kerana mudah digunakan dan berkuasa. 1) Sistem pengikat data responsifnya secara automatik mengemas kini paparan. 2) Sistem komponen meningkatkan kebolehgunaan semula dan mengekalkan kod. 3) Ciri -ciri pengkomputeran dan pendengar meningkatkan kebolehbacaan dan prestasi kod. 4) Menggunakan vuedevtools dan memeriksa kesilapan konsol adalah teknik debugging biasa. 5) Pengoptimuman Prestasi termasuk penggunaan atribut utama, atribut yang dikira dan komponen-komponen Alive. 6) Amalan terbaik termasuk penamaan komponen yang jelas, penggunaan komponen fail tunggal dan penggunaan cangkuk kitaran hidup yang rasional.

Kekuatan Vue.js di Frontend: Ciri dan Manfaat UtamaKekuatan Vue.js di Frontend: Ciri dan Manfaat UtamaApr 21, 2025 am 12:07 AM

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina aplikasi front-end yang cekap dan boleh dipelihara. Ciri -ciri utamanya termasuk: 1. Pengikatan data responsif, 2. Pembangunan Komponen, 3. Dom maya. Melalui ciri -ciri ini, Vue.js memudahkan proses pembangunan, meningkatkan prestasi aplikasi dan mengekalkan, menjadikannya sangat popular dalam pembangunan web moden.

Adakah vue.js lebih baik daripada bertindak balas?Adakah vue.js lebih baik daripada bertindak balas?Apr 20, 2025 am 12:05 AM

Vue.js dan bertindak balas masing -masing mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keadaan pasukan. 1) vue.js sesuai untuk projek kecil dan pemula kerana kesederhanaan dan mudah digunakan; 2) React sesuai untuk projek besar dan UI yang kompleks kerana reka bentuk ekosistem dan komponennya yang kaya.

Fungsi Vue.js: Meningkatkan Pengalaman Pengguna di FrontendFungsi Vue.js: Meningkatkan Pengalaman Pengguna di FrontendApr 19, 2025 am 12:13 AM

Vue.js meningkatkan pengalaman pengguna melalui pelbagai fungsi: 1. Sistem responsif menyedari maklum balas data masa nyata; 2. Pembangunan komponen meningkatkan kebolehgunaan semula kod; 3. Vuerouter menyediakan navigasi lancar; 4. Data dinamik mengikat dan animasi peralihan meningkatkan kesan interaksi; 5. Mekanisme pemprosesan ralat memastikan maklum balas pengguna; 6. Pengoptimuman prestasi dan amalan terbaik meningkatkan prestasi aplikasi.

Vue.js: Menentukan peranannya dalam pembangunan webVue.js: Menentukan peranannya dalam pembangunan webApr 18, 2025 am 12:07 AM

Peranan vue.js dalam pembangunan web adalah bertindak sebagai rangka kerja JavaScript yang progresif yang memudahkan proses pembangunan dan meningkatkan kecekapan. 1) Ia membolehkan pemaju memberi tumpuan kepada logik perniagaan melalui pengikatan data yang responsif dan pembangunan komponen. 2) Prinsip kerja Vue.js bergantung kepada sistem responsif dan DOM maya untuk mengoptimumkan prestasi. 3) Dalam projek sebenar, adalah amalan biasa untuk menggunakan VUEX untuk menguruskan keadaan global dan mengoptimumkan respons data.

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

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft