Jadual Kandungan
Struktur asas dan bahagian komponen
Paparan kawalan dan logik interaksi
Pengembangan gaya dan slot
Mengoptimumkan pengalaman interaktif dengan arahan
Rumah hujung hadapan web View.js Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?

Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?

Jul 18, 2025 am 02:30 AM

Buat komponen menu drop-down yang boleh diguna semula di Vue, yang memerlukan kawalan kandungan dan kaedah pencetus melalui prop dan penggunaan slot untuk mencapai penyesuaian. 1. Struktur komponen termasuk butang pencetus dan panel pull-down, menggunakan label prop untuk menetapkan teks butang, isopen untuk mengawal status paparan; 2. Logik interaktif mengamalkan pengikatan bidirectional v-model untuk mengawal paparan, digabungkan dengan prop yang dilumpuhkan untuk menyokong keadaan kurang upaya, dan klik di luar penutupan dicapai melalui perintah clickoutside; 3. Gaya dikawal oleh kelas, slot membolehkan kandungan menu tersuai, dan menyokong pengembangan slot pencetus dan lalai; 4. Perintah enkapsulasi v-klik-luar digunakan untuk mengoptimumkan logik penutup dan meningkatkan pengalaman interaktif. Penyelesaiannya jelas dalam struktur dan sangat extensible, dan sesuai untuk pelbagai senario.

Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?

Buat komponen menu drop-down yang boleh diguna semula di VUE, terasnya ialah komponen-komponen yang disusun dengan jelas, secara logiknya, dan fleksibel dalam gaya. Titik utama adalah untuk mengawal kandungan menu dan mod pencetus melalui prop, dan menggunakan slot untuk mencapai penyesuaian kandungan yang fleksibel.

Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?

Struktur asas dan bahagian komponen

Pertama, anda memerlukan struktur komponen asas, biasanya fail Dropdown.vue . Komponen harus mengandungi elemen pencetus (seperti butang) dan panel pull-down. Struktur asas adalah seperti berikut:

 <pemat>
  <div class = "dropdown">
    <butang @click = "toggle"> {{label}} </butang>
    <div v-show = "isOpen" class = "dropdown-menu">
      <slot> </slot>
    </div>
  </div>
</template>

Dalam struktur ini, label adalah prop, digunakan untuk menetapkan teks butang; isOpen adalah pemboleh ubah keadaan dalaman, mengawal sama ada untuk memaparkan kandungan drop-down; slot digunakan untuk memasukkan item menu.

Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?

Paparan kawalan dan logik interaksi

Untuk menjadikan komponen lebih fleksibel, ia boleh menyokong fungsi seperti mengklik luaran, melumpuhkan status, dan bersembunyi menu automatik. Bahagian logik ini boleh dikendalikan seperti ini:

  • Gunakan v-model untuk mengawal status paparan menu
  • Gunakan ref untuk mendapatkan komponen dom, dan gunakan arahan clickoutside untuk mencapai klik luaran menutup
  • Menyokong status orang kurang upaya (Prop disabled )

Contoh kod:

Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?
 Props: {
  Label: String,
  ModelValue: Boolean,
  Dilumpuhkan: Boolean
},
persediaan (props, {emit}) {
  const isOpen = dikira ({
    dapatkan: () => props.modelvalue,
    Tetapkan: (val) => emit (&#39;UPDATE: ModelValue&#39;, Val)
  });

  const toggle = () => {
    jika (props.disabled) kembali;
    isOpen.Value =! isOpen.Value;
  };

  // Tambah logik clickoutside atau gunakan arahan pihak ketiga}

Pengembangan gaya dan slot

Untuk menjadikan komponen lebih umum, gaya harus dikawal menggunakan kelas, dan bukannya menulisnya hingga mati. Pada masa yang sama, menggunakan mekanisme slot membolehkan pengguna menyesuaikan kandungan menu. Contohnya:

 <pemat>
  <dropdown v-model = "showmenu">
    <template #default>
      <div class = "menu-item" @click = "handleclick"> pilihan 1 </div>
      <div class = "menu-item" @click = "handleclick"> pilihan 2 </div>
    </template>
  </dropdown>
</template>

Anda juga boleh menyokong pelbagai slot, seperti slot trigger untuk butang pencetus tersuai, dan slot default untuk kandungan menu.

Mengoptimumkan pengalaman interaktif dengan arahan

Untuk meningkatkan pengalaman interaktif, arahan v-click-outside boleh dikemas untuk mengesan sama ada klik berlaku di luar komponen, dengan itu secara automatik menutup menu. Arahan ini boleh dikemas secara berasingan sebagai pemalam atau berdaftar secara tempatan dalam komponen.

Arahan Contoh:

 const clickoutside = {
  dipasang (el, mengikat) {
    el.ClickOutSideEvent = (event) => {
      jika (! (el === event.target || el.contains (event.target))) {
        mengikat.value ();
      }
    };
    document.addeventListener (&#39;klik&#39;, el.clickoutsideEvent);
  },
  Unmounted (EL) {
    document.removeEventListener (&#39;klik&#39;, el.clickoutsideEvent);
  }
};

Kemudian gunakan dalam komponen:

 <div v-click-outside = "close" class = "dropdown-menu"> ... </div>

Pada dasarnya itu sahaja. Komponen ini dapat memenuhi keperluan kebanyakan senario, dengan struktur yang jelas, logik yang dapat dikawal, dan mudah untuk pengembangan berikutnya.

Atas ialah kandungan terperinci Bagaimana untuk membuat komponen menu dropdown yang boleh diguna semula di Vue?. 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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

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

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)

Topik panas

Tutorial PHP
1596
276
Cara Melaksanakan Switcher Tema Mod Gelap di Vue Cara Melaksanakan Switcher Tema Mod Gelap di Vue Aug 02, 2025 pm 12:15 PM

Buat komponen pensuisan tema, gunakan kotak semak untuk mengikat keadaan ISDarkMode dan panggil fungsi toggletheme; 2. Semak pilihan localStorage dan sistem di Onmounted untuk memulakan tema; 3. Tentukan fungsi ApplyTheMe untuk memohon kelas mod gelap ke elemen HTML untuk menukar gaya; 4. Gunakan sifat tersuai CSS untuk menentukan pembolehubah cerah dan gelap, dan ganti rugi gaya lalai melalui kelas mod gelap; 5. Memperkenalkan komponen Temeswitcher ke dalam templat aplikasi utama untuk memaparkan butang togol; 6. Secara pilihan mendengar perubahan-warna-skema perubahan untuk menyegerakkan tema sistem. Penyelesaian ini menggunakan Vue

Kaedah yang dikira vs kaedah di Vue Kaedah yang dikira vs kaedah di Vue Aug 05, 2025 am 05:21 AM

Dikira mempunyai cache, dan pelbagai akses tidak dikira semula apabila pergantungan tetap tidak berubah, sementara kaedah dilaksanakan setiap kali mereka dipanggil; 2. Komputed sesuai untuk pengiraan berdasarkan data responsif. Kaedah sesuai untuk senario di mana parameter diperlukan atau panggilan kerap tetapi hasilnya tidak bergantung kepada data responsif; 3. Kompted menyokong getters dan setters, yang dapat merealisasikan penyegerakan data dua hala, tetapi kaedah tidak disokong; 4. Ringkasan: Gunakan yang dikira terlebih dahulu untuk meningkatkan prestasi, dan menggunakan kaedah semasa lulus parameter, melakukan operasi atau mengelakkan cache, mengikuti prinsip "jika anda boleh menggunakan dikira, anda tidak menggunakan kaedah".

Bagaimana untuk membuat komponen modal atau dialog di Vue? Bagaimana untuk membuat komponen modal atau dialog di Vue? Aug 02, 2025 am 03:00 AM

Buat komponen modal.vue, gunakan API Komposisi untuk menentukan prop yang menerima model dan tajuk, dan gunakan emit untuk mencetuskan kemas kini: peristiwa model untuk mencapai pengikatan bidirectional v-model; 2. Gunakan slot untuk mengedarkan kandungan dalam templat, menyokong slot lalai dan slot slot yang dinamakan dan footer; 3. Gunakan @Click.LoLF untuk menutup tetingkap pop timbul dengan mengklik lapisan topeng; 4. Import modal dalam komponen induk dan gunakan ref untuk mengawal paparan dan menyembunyikannya, dan gunakannya dalam kombinasi dengan model V; 5. Penambahbaikan pilihan termasuk mendengar kunci Escape Close, menambah animasi peralihan dan kunci fokus. Komponen kotak modal ini mempunyai baik

Bagaimana cara memasang Vue CLI? Bagaimana cara memasang Vue CLI? Jul 30, 2025 am 12:38 AM

Vueclicanstillbeinstalledforlegacyprojectsingnpminstall-g@vue/cli, butitisdeprecatedaSof2023.1.ensurenode.js (v14 ) dannpmareInstalledByRunningNode-versionandnpm-version.2.installvuecligloballywithnpminstall-g@vue/cli.3.verifytheinstallationingVue

Bagaimana untuk lulus alat peraga ke komponen laluan di Vue Router? Bagaimana untuk lulus alat peraga ke komponen laluan di Vue Router? Jul 29, 2025 am 04:23 AM

Lulus parameter penghalaan menggunakan prop boleh membuat komponen lebih mudah untuk digunakan semula dan diuji. Terdapat tiga cara: ① Mod Boolean: Props: Parameter Routing Pass Benar sebagai Props; ② Mod Objek: Props: {Key: Value} Untuk lulus nilai statik; ③ Mod Fungsi: Props: (Route) => ({}) boleh memproses parameter secara dinamik dan lulusnya. Prop yang sepadan perlu diisytiharkan dalam komponen, yang sesuai untuk senario mudah dan meningkatkan decoupling komponen dan pemeliharaan.

Bagaimana untuk melaksanakan penapis carian untuk senarai data dalam Vue? Bagaimana untuk melaksanakan penapis carian untuk senarai data dalam Vue? Aug 02, 2025 am 07:18 AM

Gunakan API Komposisi VUE3 untuk melaksanakan fungsi penapisan carian, terasnya adalah untuk menapis senarai secara dinamik melalui input carian V-model yang mengikat dan mengira atribut; 2. Gunakan TolowerCase () untuk mencapai pencocokan kes-tidak sensitif dan separa; 3. Anda boleh mendengar istilah carian melalui Watch dan Combine SetTimeout untuk mencapai 300ms anti-shake untuk meningkatkan prestasi; 4. Jika data datang dari API, anda boleh mendapatkan dan mengekalkan respons responsif senarai secara tidak segerak dalam onmounted; 5. Amalan terbaik termasuk menggunakan dikira dan bukannya kaedah, mengekalkan data asal, menambah kunci kepada V-untuk, dan memaparkan "tidak dijumpai" segera apabila tidak ada hasil. Penyelesaian ini mudah dan cekap, sesuai untuk besar

Apakah cangkuk kitaran hayat Vue? Apakah cangkuk kitaran hayat Vue? Aug 05, 2025 am 09:33 AM

VuelifecycleHooksallowyoutoexecutecodeatspecificstagesofacomponent'sexistence.1.beforecreaterunswhenthenthecomponentisinitialized, beforereactivityissetup.2.CreateediscalledafterReactiveisstablisded, makeDataandmethoDoShoD.3apvailable

Cara Melaksanakan Pengesahan dalam Aplikasi VUE Cara Melaksanakan Pengesahan dalam Aplikasi VUE Aug 02, 2025 am 07:24 AM

ChooseJWTorOAuthforauthentication;2.Createaloginformtosendcredentialsandstoretokenssecurely,preferablyusinghttpOnlycookiesinsteadoflocalStoragetopreventXSS;3.ProtectroutesusingVueRouter’sbeforeEachguardtoredirectunauthenticatedusers;4.Manageuserstate

See all articles