Rumah >hujung hadapan web >View.js >Bagaimana untuk melaksanakan paparan gelung rekursif data dalam Vue

Bagaimana untuk melaksanakan paparan gelung rekursif data dalam Vue

PHPz
PHPzasal
2023-04-10 09:04:061304semak imbas

Vue ialah rangka kerja JavaScript popular yang sering digunakan untuk membina aplikasi bahagian hadapan. Vue mempunyai prestasi cemerlang dan kemudahan penggunaan, yang meningkatkan kecekapan pembangunan.

Paparan gelung ialah salah satu senario yang sangat biasa dalam pembangunan Vue. Dalam pembangunan sebenar, kita biasanya perlu memaparkan beberapa data dengan struktur hierarki, seperti struktur pokok atau senarai berbilang peringkat. Ini memerlukan penggunaan gelung rekursif untuk memaparkan data.

Artikel ini akan memperkenalkan cara melaksanakan paparan gelung rekursif data dalam Vue.

  1. Bina model data

Pertama, kita perlu mentakrifkan model data dan mendaftarkannya dalam contoh Vue.

Andaikan kita ingin memaparkan data berstruktur pokok, yang terdiri daripada medan berikut:

  • id: ID nod
  • nama: nama nod
  • kanak-kanak: senarai nod anak

Kami boleh menggunakan rekursi untuk mentakrifkan model data ini:

const treeData = [
  {
    id: 1,
    name: '节点 1',
    children: [
      {
        id: 2,
        name: '节点 1-1',
        children: [
          {
            id: 3,
            name: '节点 1-1-1',
            children: []
          },
          {
            id: 4,
            name: '节点 1-1-2',
            children: []
          }
        ]
      },
      {
        id: 5,
        name: '节点 1-2',
        children: [
          {
            id: 6,
            name: '节点 1-2-1',
            children: []
          },
          {
            id: 7,
            name: '节点 1-2-2',
            children: []
          }
        ]
      }
    ]
  }
];

Vue.component('tree-node', {
  template: `
    <div>
      <div>{{ node.name }}</div>
      <tree-node v-for="child in node.children" :node="child" :key="child.id"></tree-node>
    </div>
  `,
  props: ['node'],
});

new Vue({
  el: '#app',
  data() {
    return {
      treeData: treeData,
    };
  },
});

Dalam kod di atas, kami menggunakan nama Laksanakan paparan gelung rekursif data untuk tree-node komponen. Komponen ini akan menerima prop bernama node, yang mewakili objek data nod semasa. Dalam templat komponen, kami mula-mula memaparkan nama nod semasa dan kemudian secara rekursif memaparkan nod anak.

Nota: Kami menggunakan arahan v-for untuk menggelung melalui nod anak nod semasa, yang memerlukan penetapan nilai kunci unik untuk setiap nod anak. Di sini kita menggunakan id nod anak sebagai kunci.

  1. Gunakan gelung rekursif dalam templat

Selepas definisi model data dan pendaftaran komponen selesai, kami boleh menggunakan gelung rekursif dalam templat Vue untuk memaparkan data.

Dengan mengandaikan bahawa model data kami telah didaftarkan sebagai komponen bernama tree-node, kami boleh menggunakan kod berikut dalam templat Vue untuk memaparkan data:

<div id="app">
  <tree-node :node="treeData[0]"></tree-node>
</div>

Dalam kod di atas , kami menggunakan komponen tree-node dan lulus dalam nod akar model data sebagai prop.

Dalam contoh di atas, kami menunjukkan data berstruktur pokok. Dengan menggunakan gelung rekursif dan komponenisasi, kami boleh memaparkan data hierarki dengan mudah.

  1. Ringkasan

Melalui pengenalan artikel ini, saya percaya anda telah memahami cara menggunakan gelung rekursif untuk memaparkan data dalam Vue. Ini adalah senario yang sangat biasa dan sangat penting untuk membangunkan aplikasi praktikal. Dalam pembangunan sebenar, kami juga boleh membuat lebih banyak pengembangan dan pengoptimuman berdasarkan ini untuk menjadikan aplikasi lebih cekap dan lebih mudah untuk digunakan.

Terima kasih kerana membaca!

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan paparan gelung rekursif data 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