Rumah hujung hadapan web View.js Cara menggunakan provide/inject dalam Vue untuk menghantar data merentasi berbilang lapisan nenek moyang dan keturunan

Cara menggunakan provide/inject dalam Vue untuk menghantar data merentasi berbilang lapisan nenek moyang dan keturunan

Jun 11, 2023 am 11:45 AM
vue pemindahan data provide/inject

Vue menyediakan kaedah pemindahan data yang cekap - menyediakan/menyuntik, yang boleh membantu kami memindahkan data antara nenek moyang dan keturunan merentas berbilang lapisan, mengelakkan pemindahan prop yang menyusahkan. Artikel ini akan memperkenalkan cara menggunakan provide/inject dalam Vue untuk mencapai pemindahan data merentas berbilang lapisan nenek moyang dan keturunan.

1. Menyediakan dan menyuntik

Menyediakan dan menyuntik ialah API baharu selepas Vue versi 2.2.0, yang digunakan untuk memindahkan data merentas komponen berbilang lapisan. provide membolehkan komponen menyuntik kebergantungan ke dalam semua komponen turunannya, dan suntikan boleh menerima kebergantungan ini dan menggunakannya.

menyediakan dan menyuntik digunakan terutamanya untuk perpustakaan pemalam/komponen pesanan tinggi, seperti element-ui. Dalam elemen-ui, komponennya semua bergantung pada perpustakaan komponen peringkat teratas ini perlu menyediakan beberapa pembolehubah awam dan kaedah kepada semua sub-komponen yang digunakan untuk memindahkan data ini.

2. Penggunaan menyediakan dan menyuntik

Menggunakan menyediakan dalam komponen, kami boleh menyediakan titik suntikan untuk komponen kanak-kanak supaya mereka boleh mendapatkan data yang disediakan oleh komponen induk. Contohnya:

// 父组件
export default {
  provide () {
    return {
      theme: this.theme
    }
  },
  data () {
    return {
      theme: 'light'
    }
  }
}

// 子组件
export default {
  inject: ['theme'],
  mounted () {
    console.log(this.theme) // light
  }
}
Salin selepas log masuk

Dalam contoh di atas, komponen induk menggunakan menyediakan untuk menyediakan data dan mendedahkan objek data kepada komponen turunan Data di sini ialah jenis rentetan. Cara untuk menyediakan adalah dengan menggunakan fungsi menyediakan Menurut dokumentasi rasmi menyediakan, nilai pulangan fungsi ini adalah objek. Kunci dalam objek boleh digunakan apabila menyuntik keturunan, dan nilainya ialah data yang akan disuntik, yang boleh menjadi pembolehubah, fungsi, dsb.

Menggunakan suntikan dalam komponen anak, kami boleh menerima data yang disediakan oleh komponen induk. Contohnya:

export default {
  inject: ['theme'],
  mounted () {
    console.log(this.theme) // light
  }
}
Salin selepas log masuk

Dalam contoh, komponen anak menerima data menggunakan pilihan suntikan dalam pilihan komponen. "inject: [key]" dengan kunci ialah kunci objek data yang akan didedahkan dalam komponen induk. Kunci di sini adalah konsisten dengan yang disediakan oleh fungsi provide. Perlu diingat bahawa secara lalai, kebergantungan akan dicari dalam induk Jika anda tidak mahu mencari dalam induk, anda perlu menetapkan srcoll dalam inject kepada false. Hanya data yang disediakan oleh komponen induk boleh disuntik oleh komponen anak.

3. Nota tentang menyediakan dan menyuntik

  1. Data yang disuntik oleh menyediakan boleh digunakan dalam komponen turunan, tetapi tidak dalam komponen induknya.

Dalam mekanisme menyediakan dan menyuntik, data yang disediakan oleh menyediakan boleh disuntik ke dalam komponen turunan secara suntikan. Walau bagaimanapun, jika inject juga digunakan dalam komponen induk untuk menerima data, ia tidak akan berkuat kuasa kerana inject akan mencari data yang disediakan dalam komponen induk secara lalai dan Vue tidak akan melihat dalam komponen induk untuk konsisten dengan keturunan. komponen.

  1. Jangan gunakan fungsi anak panah dalam menyediakan untuk mengembalikan data.

menyediakan keperluan untuk mengembalikan objek untuk menyediakan data, jadi kami sering menggunakan fungsi anak panah untuk mengembalikan objek, contohnya:

export default {
  provide: () => ({
    theme: 'light'
  })
}
Salin selepas log masuk

Walau bagaimanapun, dalam kebanyakan kes kami tidak menggunakan anak panah berfungsi untuk menyediakan data, kerana fungsi anak panah tidak menunjuk kepada ini. Apabila menggunakan fungsi anak panah dalam menyediakan ia tidak mendapat konteks yang betul dan ia tidak bertindak balas terhadap perubahan data.

  1. Tidak disyorkan untuk menggunakan nama bermula dengan simbol $ dalam menyediakan dan menyuntik.

Penamaan bermula dengan simbol $ dalam provide dan inject ialah peraturan penamaan yang dikhaskan oleh Vue, jadi kami tidak mengesyorkan menggunakan simbol $ untuk memulakan data yang disediakan. Menggunakan nama bermula dengan simbol $ dalam menyediakan mungkin menyebabkan beberapa masalah, manakala menggunakan nama bermula dengan simbol $ dalam inject akan diabaikan.

4. Senario penggunaan

Tujuan utama menyediakan/menyuntik adalah untuk membina perpustakaan komponen merentas peringkat komponen. Khususnya, berbilang komponen berkongsi beberapa maklumat atau status yang sama, seperti warna tema, bahasa, dsb.

Dalam proses pembangunan sebenar, senario boleh dibayangkan dengan mudah: dalam Apl atau halaman, mungkin terdapat banyak komponen yang serupa. Komponen ini perlu menggunakan keadaan atau kaedah yang sama untuk menyampaikan maklumat dan status yang dikongsi ini merentas peringkat, mengelakkan kod berlebihan dan pertindihan kerja.

Pada masa yang sama, kami juga boleh menggunakan campuran untuk mengelakkan pertindihan kod dan lebihan kod, menjadikan kod kami elegan, bersih dan mudah diselenggara.

5. Ringkasan

Menggunakan provide/inject ialah kaedah pemindahan data yang cekap, yang boleh membantu kami mencapai pemindahan data merentas berbilang lapisan nenek moyang dan keturunan, serta mengurangkan penggunaan prop. Walau bagaimanapun, perlu diingatkan bahawa terdapat beberapa langkah berjaga-jaga yang perlu diikuti apabila menggunakan sediakan/suntik untuk mengelakkan menjejaskan prestasi dan ketepatan komponen. Pada masa yang sama, aplikasi sebenar memerlukan analisis terperinci senario dan penggunaan munasabah menyediakan/menyuntik, props atau vuex untuk pemindahan data.

Atas ialah kandungan terperinci Cara menggunakan provide/inject dalam Vue untuk menghantar data merentasi berbilang lapisan nenek moyang dan keturunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara merujuk fail js dengan vue.js Cara merujuk fail js dengan vue.js Apr 07, 2025 pm 11:27 PM

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apr 07, 2025 pm 11:57 PM

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

Cara kembali ke halaman sebelumnya oleh Vue Cara kembali ke halaman sebelumnya oleh Vue Apr 07, 2025 pm 11:30 PM

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Cara Menanyakan Versi Vue Cara Menanyakan Versi Vue Apr 07, 2025 pm 11:24 PM

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.

Cara Menggunakan Fungsi Memintas Vue Cara Menggunakan Fungsi Memintas Vue Apr 08, 2025 am 06:51 AM

Pemintasan fungsi dalam VUE adalah teknik yang digunakan untuk mengehadkan bilangan kali fungsi dipanggil dalam tempoh masa yang ditentukan dan mencegah masalah prestasi. Kaedah pelaksanaan adalah: mengimport perpustakaan lodash: import {debounce} dari 'lodash'; Gunakan fungsi debounce untuk membuat fungsi memintas: const debouncedfunction = debounce (() = & gt; { / logical /}, 500); Panggil fungsi Intercept, dan fungsi kawalan dipanggil paling banyak sekali dalam 500 milisaat.

See all articles