Rumah > hujung hadapan web > View.js > Cara menggunakan komponen keep-alive untuk mencapai tiada kesan segar semula dalam projek vue

Cara menggunakan komponen keep-alive untuk mencapai tiada kesan segar semula dalam projek vue

王林
Lepaskan: 2023-07-21 22:09:14
asal
1018 orang telah melayarinya

Cara menggunakan komponen keep-alive dalam projek vue untuk mencapai kesan bebas muat semula

Dalam projek Vue, kami sering menghadapi keperluan untuk menukar halaman tetapi mengekalkan status halaman. Pada masa ini, kita boleh menggunakan komponen kekal hidup Vue untuk mencapai kesan tanpa penyegaran. Komponen keep-alive ialah komponen abstrak yang disediakan oleh Vue, yang digunakan untuk cache contoh komponen untuk mengelakkan rendering berulang.

Seterusnya, saya akan mengambil contoh mudah untuk memperkenalkan cara menggunakan keep-alive untuk mencapai kesan tanpa penyegaran.

Pertama, kita perlu membuat projek Vue dan membuat dua halaman dalam projek tersebut, iaitu Laman Utama dan Perihal.

Dalam halaman Utama, kami memaparkan pembilang dengan nilai awal 0. Setiap kali butang diklik, nilai pembilang akan meningkat sebanyak 1.

<template>
  <div>
    <h2>Home页面</h2>
    <p>计数器: {{ count }}</p>
    <button @click="increment">增加</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};
</script>
Salin selepas log masuk

Dalam halaman Perihal, kami memaparkan nilai pembilang dan menyediakan butang kembali untuk kembali ke halaman Utama.

<template>
  <div>
    <h2>About页面</h2>
    <p>计数器的值: {{ count }}</p>
    <button @click="goBack">返回</button>
  </div>
</template>

<script>
export default {
  computed: {
    count() {
      return this.$store.state.count;
    }
  },
  methods: {
    goBack() {
      this.$router.go(-1);
    }
  }
};
</script>
Salin selepas log masuk

Seterusnya, kita perlu menambah komponen kekal hidup pada halaman Laman Utama dan Perihal dalam konfigurasi penghalaan.

import Vue from 'vue';
import Router from 'vue-router';
import Home from '@/views/Home.vue';
import About from '@/views/About.vue';

Vue.use(Router);

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: () => import('@/views/Home.vue'),
      meta: {
        keepAlive: true // 设置keep-alive为true
      }
    },
    {
      path: '/about',
      name: 'About',
      component: () => import('@/views/About.vue'),
      meta: {
        keepAlive: false // 设置keep-alive为false
      }
    }
  ]
});
Salin selepas log masuk

Di sini, kami menetapkan keep-alive halaman Utama kepada benar, yang menghidupkan cache, dan keep-alive halaman Perihal ditetapkan kepada false, yang mematikan cache.

Akhir sekali, kita perlu menambah komponen keep-alive pada komponen App.vue dan menghidupkan atau mematikan cache secara dinamik mengikut konfigurasi keep-alive laluan.

<template>
  <div id="app">
    <keep-alive>
      <router-view :key="$route.fullPath"></router-view>
    </keep-alive>
  </div>
</template>
Salin selepas log masuk

Dengan konfigurasi di atas, kita kini boleh mengklik butang "Tingkatkan" pada halaman Utama, nilai kaunter akan meningkat, dan kemudian melompat ke halaman Perihal, dan kemudian kembali ke halaman Utama, nilai kaunter akan kekal tidak berubah .

Ringkasan:

Melalui contoh di atas, kita dapat melihat bahawa kesan tanpa penyegaran boleh dicapai dengan mudah menggunakan komponen keep-alive. Dengan mengkonfigurasi atribut meta laluan, kami boleh mengawal strategi caching komponen secara fleksibel. Komponen keep-alive ialah pilihan yang baik apabila kita perlu mengekalkan keadaan halaman atau menghalang pemaparan berulang.

Saya harap contoh dalam artikel ini dapat membantu anda memahami dengan lebih baik cara menggunakan komponen keep-alive untuk mencapai kesan bebas muat semula dalam projek Vue. Jika anda mempunyai sebarang pertanyaan, sila tinggalkan mesej untuk perbincangan.

Atas ialah kandungan terperinci Cara menggunakan komponen keep-alive untuk mencapai tiada kesan segar semula 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