Rumah >hujung hadapan web >View.js >Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue

Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue

WBOY
WBOYasal
2023-11-07 14:09:172008semak imbas

Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue

Cara melaksanakan kotak lungsur berbilang pilihan dalam Vue

Dalam pembangunan Vue, kotak lungsur ialah salah satu komponen bentuk biasa. Biasanya, kami menggunakan kotak lungsur radio untuk memilih pilihan. Walau bagaimanapun, kadangkala kita perlu melaksanakan kotak lungsur berbilang pilihan supaya pengguna boleh memilih berbilang pilihan pada masa yang sama. Dalam artikel ini, kami akan memperkenalkan cara untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue dan memberikan contoh kod khusus.

1. Gunakan perpustakaan komponen UI Elemen
UI Elemen ialah perpustakaan komponen desktop berdasarkan Vue, yang menyediakan set komponen dan alatan UI yang kaya. Dalam UI Elemen, terdapat komponen yang dipanggil Pilih, yang boleh digunakan untuk melaksanakan kotak lungsur. Komponen ini menyokong mod pemilihan berbilang, yang boleh didayakan dengan menetapkan atribut berbilang kepada benar. Berikut ialah contoh mudah:

<el-select v-model="selectedOptions" multiple>
  <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value"></el-option>
</el-select>
data() {
  return {
    options: [
      { value: 'option1', label: '选项1' },
      { value: 'option2', label: '选项2' },
      { value: 'option3', label: '选项3' }
    ],
    selectedOptions: []
  };
}

Dalam kod di atas, kami menggunakan arahan model v untuk mengikat tatasusunan yang dipilihOptions untuk menyimpan pilihan yang dipilih oleh pengguna. Dengan menetapkan berbilang atribut kepada benar, kotak lungsur boleh menyokong berbilang pilihan.

2. Komponen kotak lungsur berbilang pilihan tersuai
Selain menggunakan perpustakaan komponen yang disediakan oleh UI Elemen, kami juga boleh melaksanakan kotak lungsur berbilang pilihan mengikut keperluan kami sendiri. Berikut ialah kod sampel untuk komponen kotak lungsur berbilang pilihan tersuai:

<template>
  <div class="dropdown" @click="toggleDropdown">
    <div class="selected-options">
      <span v-if="selectedOptions.length === 0">请选择...</span>
      <span v-else>
        <span v-for="option in selectedOptions" :key="option.value">
          {{ option.label }}
          <span class="remove" @click.stop="removeOption(option)">&#10006;</span>
        </span>
      </span>
    </div>
    <div class="dropdown-list" v-show="showDropdown">
      <span v-for="option in options" :key="option.value" @click="toggleOption(option)">
        <input type="checkbox" :value="option.value" :checked="isChecked(option)">
        {{ option.label }}
      </span>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { value: 'option1', label: '选项1' },
        { value: 'option2', label: '选项2' },
        { value: 'option3', label: '选项3' }
      ],
      selectedOptions: [],
      showDropdown: false
    };
  },
  methods: {
    toggleDropdown() {
      this.showDropdown = !this.showDropdown;
    },
    toggleOption(option) {
      if (this.isSelected(option)) {
        this.removeOption(option);
      } else {
        this.addOption(option);
      }
    },
    isSelected(option) {
      return this.selectedOptions.some(selectedOption => selectedOption.value === option.value);
    },
    addOption(option) {
      if (!this.isSelected(option)) {
        this.selectedOptions.push(option);
      }
    },
    removeOption(option) {
      this.selectedOptions = this.selectedOptions.filter(selectedOption => selectedOption.value !== option.value);
    },
    isChecked(option) {
      return this.isSelected(option);
    }
  }
};
</script>

<style scoped>
.dropdown {
  position: relative;
  display: inline-block;
}
.selected-options {
  border: 1px solid #aaa;
  padding: 5px;
  cursor: pointer;
}
.dropdown-list {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid #aaa;
  background-color: #fff;
  padding: 5px;
}
.remove {
  margin-left: 5px;
  cursor: pointer;
}
</style>

Dalam kod di atas, kami menggunakan pembolehubah selectedOptions untuk menyimpan pilihan yang dipilih oleh pengguna. Kembangkan atau runtuhkan kotak lungsur dengan mengklik sebahagian daripada bekas kotak lungsur, togol keadaan yang dipilih dengan mengklik pada setiap pilihan dan gunakan tatasusunan Pilihan yang dipilih untuk menyimpan pilihan yang dipilih. Kaedah removeOption digunakan untuk mengalih keluar pilihan, dan kaedah isChecked digunakan untuk menentukan sama ada pilihan dipilih. Komponen ini boleh diperkenalkan dan digunakan dalam komponen lain.

Ringkasan
Untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue, kami boleh menggunakan komponen Pilih yang disediakan oleh UI Elemen dan menetapkan berbilang atribut kepada benar. Selain itu, kami juga boleh menyesuaikan komponen untuk melaksanakan kotak drop-down berbilang pilihan dan menyesuaikannya mengikut keperluan kami sendiri. Di atas ialah dua kaedah untuk melaksanakan kotak lungsur berbilang pilihan saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam 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

Artikel berkaitan

Lihat lagi