Rumah > hujung hadapan web > View.js > teks badan

Petua untuk menggunakan v-for untuk melaksanakan pengisihan dinamik dalam Vue

PHPz
Lepaskan: 2023-06-25 09:18:14
asal
3397 orang telah melayarinya

Vue ialah rangka kerja JavaScript moden yang membantu kami membina halaman web dinamik dan aplikasi kompleks dengan mudah. Dalam Vue, anda boleh membuat struktur gelung dengan mudah menggunakan v-for untuk menghasilkan data secara berulang. Dalam beberapa senario tertentu, kita juga boleh menggunakan v-for untuk melaksanakan pengisihan dinamik. Artikel ini akan memperkenalkan cara menggunakan v-for untuk melaksanakan teknik pengisihan dinamik dalam Vue, serta beberapa senario dan contoh aplikasi.

1. Gunakan v-for untuk pengisihan dinamik yang mudah

Cara paling mudah untuk menggunakan v-for untuk melaksanakan pengisihan dinamik ialah mengisih data melalui sifat yang dikira dan mengikat data yang diisih ke tengah arahan v-for. Kaedah ini mudah dan berkesan, serta sesuai untuk situasi di mana jumlah data adalah kecil dan keadaan pengisihan tidak terlalu kompleks.

Sebagai contoh, kami mempunyai senarai yang mengandungi nama dan maklumat umur beberapa orang. Sekarang kita perlu mengisih data ini mengikut maklumat umur dan memaparkannya di halaman web. Kemudian, kita boleh terlebih dahulu mentakrifkan tatasusunan orang dalam contoh Vue dan menggunakan arahan v-untuk untuk menjadikannya templat:

<template>
  <ul>
    <li v-for="(person, index) in persons" :key="index">{{ person.name }} {{ person.age }}</li>
  </ul>
</template>
Salin selepas log masuk

Tentukan harta yang dikira sortedPersons dalam harta terkira contoh Vue, susun tatasusunan orang mengikut umur dan kembalikannya , kodnya adalah seperti berikut:

computed: {
  sortedPersons() {
    return this.persons.sort((a, b) => a.age - b.age);
  }
}
Salin selepas log masuk

Ikat tatasusunan sortedPersons ke arahan v-for dalam templat, kodnya adalah seperti berikut:

<template>
  <ul>
    <li v-for="(person, index) in sortedPersons" :key="index">{{ person.name }} {{ person.age }}</li>
  </ul>
</template>
Salin selepas log masuk

Dengan cara ini, kami telah mencapai tujuan untuk mengisih secara dinamik susunan orang mengikut umur.

2. Gunakan sifat yang dikira untuk pengisihan lanjutan

Jika anda perlu melakukan pengisihan yang lebih kompleks pada senarai, seperti pengisihan berdasarkan dua atau lebih syarat pada masa yang sama, anda boleh menentukan kaedah pengisihan tersuai dalam sifat yang dikira. Laksanakan pengisihan lanjutan. Kaedah ini menerima dua parameter iaitu tatasusunan yang hendak diisih dan peraturan pengisihan. Dalam peraturan pengisihan, anda boleh menetapkan susunan pengisihan melalui kaedah penghakiman.

Sebagai contoh, kami mempunyai senarai pekerja dan perlu menyusun pekerja berdasarkan umur dan tahun bekerja. Peraturan pengisihan ialah, susun mengikut tertib menurun mengikut umur, dan jika umur adalah sama, susun mengikut tertib menaik mengikut tahun bekerja. Kodnya adalah seperti berikut:

<template>
  <ul>
    <li v-for="(employee, index) in sortedEmployees" :key="index">{{ employee.name }} {{ employee.age }} {{ employee.experience }}</li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      employees: [
        { name: '张三', age: 25, experience: 2 },
        { name: '李四', age: 27, experience: 3 },
        { name: '王五', age: 25, experience: 1 },
        { name: '赵六', age: 30, experience: 5 },
      ],
    }
  },
  computed: {
    sortedEmployees() {
      return this.employees.sort((a, b) => {
        if (a.age < b.age) return 1;
        else if (a.age > b.age) return -1;
        else {
          if (a.experience > b.experience) return 1;
          else if (a.experience < b.experience) return -1;
          else return 0;
        }
      });
    },
  },
}
</script>
Salin selepas log masuk

Pada masa ini, kita boleh mendapatkan senarai pekerja yang disusun mengikut umur dalam susunan menurun, dan jika umur adalah sama, maka mengikut tahun bekerja dalam susunan menaik.

3. Gunakan v-for untuk melaksanakan pengisihan seret dan lepas

Selain menggunakan sifat pengiraan yang dikira untuk mengisih data secara dinamik, kami juga boleh menggunakan v-for untuk melaksanakan pengisihan seret dan lepas. Dalam Vue, anda boleh menggunakan pemalam Vuedraggable untuk melaksanakan fungsi isihan drag-and-drop v-for. Pemalam berfungsi dengan mana-mana jenis data termasuk tatasusunan, objek, dsb.

Sebagai contoh, kami mempunyai senarai dan perlu melaksanakan pengisihan seret dan lepas pada halaman web. Kemudian, kita boleh mula-mula memasang pemalam Vuedraggable, gunakan arahan npm:

npm install vuedraggable --save
Salin selepas log masuk

Perkenalkan pemalam Vuedraggable ke dalam contoh Vue, dan ikat data yang perlu diisih kepada atribut mengikat v-bindnya. Pemalam Vuedraggable secara automatik menukar data ini kepada elemen seret dan lepas. Kodnya adalah seperti berikut:

<template>
  <vuedraggable v-model="items">
    <div v-for="item in items" :key="item.id">{{ item.name }}</div>
  </vuedraggable>
</template>

<script>
import Vuedraggable from 'vuedraggable';

export default {
  components: {
    Vuedraggable,
  },
  data() {
    return {
      items: [
        { id: 1, name: 'Apple' },
        { id: 2, name: 'Banana' },
        { id: 3, name: 'Orange' },
        { id: 4, name: 'Peach' },
        { id: 5, name: 'Grape' },
      ],
    };
  },
};
</script>
Salin selepas log masuk

Dengan cara ini, kita boleh melaksanakan fungsi pengisihan seret dan lepas data dengan mudah.

Ringkasan

Dalam Vue, menggunakan v-for boleh melaksanakan fungsi dengan mudah seperti pengisihan dinamik dan pengisihan seret dan lepas. Antaranya, anda boleh melakukan pengisihan mudah atau lanjutan data melalui sifat yang dikira, atau anda boleh menggunakan pemalam Vuedraggable untuk mencapai kesan seret dan lepas data. Pembangun harus memilih kaedah yang sesuai dengan mereka berdasarkan keperluan dan senario sebenar.

Atas ialah kandungan terperinci Petua untuk menggunakan v-for untuk melaksanakan pengisihan dinamik dalam Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan