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

Cara menggunakan keep-alive untuk mengoptimumkan kesan penukaran laluan dalam projek vue

王林
Lepaskan: 2023-07-22 12:29:09
asal
937 orang telah melayarinya

Cara menggunakan keep-alive untuk mengoptimumkan kesan penukaran laluan dalam projek vue

Dalam projek vue, penukaran laluan adalah operasi biasa. Walau bagaimanapun, apabila kami menukar laluan dengan kerap, kami akan mendapati bahawa komponen dan data dimuatkan semula setiap kali kami bertukar, mengakibatkan pemuatan halaman yang perlahan dan pengalaman pengguna yang lemah. Untuk menyelesaikan masalah ini, kami boleh menggunakan komponen keep-alive vue untuk mengoptimumkan kesan penukaran penghalaan.

keep-alive ialah komponen abstrak yang disediakan oleh Vue, yang boleh dibalut di luar komponen yang perlu dicache untuk cache keadaan komponen untuk mengelakkan pemaparan berulang komponen. Apabila menukar laluan, anda boleh mengawal secara dinamik sama ada untuk mendayakan caching dengan menetapkan atribut meta laluan. Seterusnya, mari kita lihat cara menggunakan keep-alive untuk mengoptimumkan kesan penukaran penghalaan dalam projek vue.

  1. Mula-mula, tambahkan atribut meta dalam fail konfigurasi penghalaan

Dalam setiap objek laluan dalam fail konfigurasi penghalaan (biasanya router.js), tambahkan atribut meta dan tetapkan nilainya kepada benar atau palsu untuk Mengawal sama ada caching adalah didayakan. Contohnya:

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
    meta: {
      keepAlive: true
    }
  },
  {
    path: '/about',
    name: 'About',
    component: About,
    meta: {
      keepAlive: false
    }
  }
]
Salin selepas log masuk
  1. Gunakan komponen keep-alive dalam App.vue

Di luar teg dalam App.vue, tambahkan teg memerlukan nama komponen caching. Contohnya:

<template>
  <div id="app">
    <keep-alive :include="keepAliveComponents">
      <router-view></router-view>
    </keep-alive>
  </div>
</template>

<script>
export default {
  computed: {
    keepAliveComponents() {
      // 获取带有meta.keepAlive属性的组件名
      const routes = this.$router.options.routes;
      const keepAliveComponents = routes
        .filter(route => route.meta && route.meta.keepAlive)
        .map(route => route.name);
      return keepAliveComponents;
    }
  }
};
</script>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan atribut yang dikira keepAliveComponents untuk mendapatkan nama komponen dengan atribut meta.keepAlive dan menetapkannya kepada nilai atribut include.

  1. Gunakan fungsi cangkuk yang diaktifkan dan dinyahaktifkan dalam komponen yang perlu dicache

Dalam komponen yang perlu dicache, anda boleh menggunakan fungsi cangkuk yang diaktifkan dan dinyahaktifkan untuk mendengar peristiwa pengaktifan dan penyahaktifan komponen. Dalam acara pengaktifan, permintaan data yang sepadan atau operasi lain boleh dilakukan dalam acara penyahaktifan, data boleh dibersihkan atau pemprosesan lain boleh dilakukan. Contohnya:

<template>
  <div>
    <!-- 组件内容 -->
  </div>
</template>

<script>
export default {
  activated() {
    // 组件激活时执行的操作
  },
  deactivated() {
    // 组件停用时执行的操作
  }
};
</script>
Salin selepas log masuk

Dengan menggunakan fungsi cangkuk yang diaktifkan dan dinyahaktifkan, anda boleh mempunyai kawalan yang lebih baik ke atas kitaran hayat komponen dan pemprosesan data.

  1. Menguji kesan

Selepas selesai langkah di atas, kita boleh menguji kesan keep-alive. Apabila menukar laluan, jika sifat meta.keepAlive adalah benar, komponen akan dicache jika tidak, ia tidak akan dicache.

Ringkasan:

Dengan menggunakan komponen keep-alive vue, kami boleh mengoptimumkan kesan penukaran penghalaan dengan mudah, mengelakkan pemuatan berulang komponen dan data serta meningkatkan kelajuan pemuatan halaman dan pengalaman pengguna. Dalam pembangunan projek, keep-alive harus digunakan secara fleksibel mengikut senario sebenar, dan digabungkan dengan fungsi cangkuk yang diaktifkan dan dinyahaktifkan untuk pemprosesan dan pengoptimuman data.

Atas ialah kandungan terperinci Cara menggunakan keep-alive untuk mengoptimumkan kesan penukaran laluan dalam projek 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