Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menyediakan menu dinamik vue

Bagaimana untuk menyediakan menu dinamik vue

王林
王林asal
2023-05-20 09:34:082378semak imbas

Dengan pembangunan berterusan teknologi pembangunan bahagian hadapan, banyak rangka kerja bahagian hadapan telah ditambah baik dan dibangunkan secara berterusan Antaranya, rangka kerja Vue digemari oleh semakin ramai pembangun kerana mudah dipelajari, cekap dan mudah. ciri. Dalam pembangunan Vue, menu dinamik sering digunakan Jadi bagaimana untuk menyediakan menu dinamik Vue? Artikel berikut akan menerangkan cara menyediakan menu dinamik Vue.

1. Pengenalan kepada menu dinamik

Dalam rangka kerja Vue, menu dinamik biasanya merujuk kepada penjanaan senarai menu yang sepadan berdasarkan data yang ditentukan, dan status serta kandungan paparan setiap item menu adalah dinamik dikira. Data boleh datang daripada antara muka bahagian belakang, disimpan secara setempat atau dihantar ke sifat komponen.

2. Proses penetapan menu dinamik

Dalam Vue, proses asas menggunakan menu dinamik adalah seperti berikut:

(1) Dapatkan data menu

Dalam Sebelum membangunkan menu dinamik, kita perlu mendapatkan data menu terlebih dahulu. Secara umumnya, data menu disimpan di bahagian belakang, dan bahagian hadapan perlu mendapatkan data melalui permintaan tak segerak. Dalam Vue, kami boleh menggunakan perpustakaan alat seperti Vue-resource atau Axios untuk menghantar permintaan tak segerak dan mendapatkan data back-end.

Contohnya:

import axios from 'axios';

export default {
  data() {
    return {
      menuItems: [],
    };
  },
  created() {
    axios.get('/menu').then((res) => {
      this.menuItems = res.data;
    });
  },
};

Dalam kod di atas, kami menggunakan perpustakaan Axios untuk menghantar permintaan GET, mendapatkan data menu yang dikembalikan oleh bahagian belakang dan menyimpannya dalam data komponen untuk seterusnya guna guna.

(2) Render komponen menu

Selepas mendapatkan data menu, kami perlu memaparkan komponen menu yang sepadan melalui sintaks templat Vue. Biasanya, kita boleh menggunakan arahan v-for untuk menggelung melalui data menu dan memberikan item menu yang sepadan.

Contohnya:

<template>
  <div>
    <ul>
      <li v-for="item in menuItems" :key="item.id">{{ item.name }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      menuItems: [],
    };
  },
  created() {
    // 发送异步请求,获取菜单数据
    // this.menuItems = ...
  },
};
</script>

Dalam kod di atas, kami menggunakan arahan v-for untuk menjadikan setiap item data dalam tatasusunan menuItems menjadi elemen li, di mana atribut :key digunakan untuk mengenal pasti setiap item menu. Apabila data menu berubah, Vue akan memaparkan semula menu secara automatik untuk mencapai kesan kemas kini dinamik.

(3) Tetapkan status item menu yang dipilih

Dalam menu dinamik, status yang dipilih bagi setiap item menu berubah secara dinamik. Apabila pengguna mengklik item menu, kami perlu mengemas kini status pilihan item menu dalam masa nyata dan memaparkan gaya berbeza berdasarkan status yang dipilih.

Dalam Vue, kita boleh menggunakan arahan v-bind:class untuk menetapkan atribut kelas elemen secara dinamik untuk mencapai perubahan dinamik dalam gaya. Sebagai contoh, kami boleh menambah gaya aktif pada item menu yang dipilih:

<template>
  <div>
    <ul>
      <li v-for="item in menuItems" :key="item.id"
        :class="{ 'active': item.isActive }"
        @click="selectMenuItem(item)"
      >
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      menuItems: [],
    };
  },
  methods: {
    selectMenuItem(item) {
      // 更新菜单项的选中状态
      // item.isActive = true;
    },
  },
};
</script>

Dalam kod di atas, kami menggunakan arahan v-bind:class untuk menetapkan atribut kelas secara dinamik untuk item menu When item.isActive adalah benar, item Menu akan ditambah dengan gaya aktif. Pada masa yang sama, kami telah mengikat kaedah selectMenuItem kepada setiap item menu melalui arahan @click Apabila pengguna mengklik item menu, kaedah ini akan dicetuskan untuk mengemas kini status item menu yang dipilih.

3. Teknik pelaksanaan menu dinamik

Apabila melaksanakan menu dinamik, anda juga perlu memberi perhatian kepada beberapa teknik pelaksanaan untuk meningkatkan prestasi menu dan pengalaman interaktif. Berikut ialah beberapa petua pelaksanaan:

(1) Muatkan item menu atas permintaan

Apabila terdapat terlalu banyak item menu, memaparkan semua item menu sekaligus akan menyebabkan pemuatan halaman perlahan dan prestasi pemaparan berkurangan. Oleh itu, kita boleh menggunakan kaedah pemuatan atas permintaan untuk hanya memaparkan item menu dalam kawasan paparan semasa, manakala item menu lain menggunakan pemuatan malas dan akan dimuatkan apabila pengguna memerlukannya.

(2) Kendalikan keadaan menu yang dipilih melalui penghalaan

Dalam Vue, aplikasi biasa menggunakan penghalaan untuk mengawal navigasi, jadi kami boleh mengendalikan keadaan menu yang dipilih melalui penghalaan. Apabila penghalaan berubah, kita boleh menentukan item menu yang harus dipilih berdasarkan laluan penghalaan semasa dan mengemas kini status dan gaya item menu yang dipilih.

(3) Gunakan peralihan untuk mencipta kesan peralihan

Untuk meningkatkan pengalaman pengguna, apabila item menu dipilih atau tidak dipilih, kami boleh menggunakan peralihan untuk mencipta kesan peralihan supaya pengguna boleh berinteraksi semasa interaksi.

4. Ringkasan

Dalam pembangunan Vue, menu dinamik ialah salah satu keperluan biasa. Melalui pengenalan artikel ini, saya percaya bahawa semua orang telah menguasai kaedah tetapan asas dan teknik pelaksanaan menu dinamik Vue, dan boleh menggunakannya secara fleksibel pada pembangunan sebenar. Sudah tentu, melaksanakan menu dinamik yang cekap dan boleh dipercayai juga memerlukan pemahaman yang mendalam tentang pengetahuan dan teknologi berkaitan Vue.

Atas ialah kandungan terperinci Bagaimana untuk menyediakan menu dinamik 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