Jadual Kandungan
1. Cache konfigurasi penghala
2
1) Senario penggunaan
2) Komponen yang ditentukan halaman cache
3) Ringkasan
Rumah hujung hadapan web View.js Penjelasan terperinci tentang cara menggunakan keepAlive dalam projek vue3

Penjelasan terperinci tentang cara menggunakan keepAlive dalam projek vue3

Dec 29, 2021 pm 06:21 PM
vue3

Artikel ini membawakan anda penerangan terperinci tentang cara menggunakan keepalive dalam projek Vue Keepalive ialah komponen terbina dalam Vue Fungsinya adalah untuk men-cache komponen dalam memori untuk mengelakkan rendering berulang DOM, yang menggunakan pemerolehan memori. kelajuan. Semoga ia membantu semua orang.

Penjelasan terperinci tentang cara menggunakan keepAlive dalam projek vue3

Penggunaan biasa adalah untuk cache komponen atau laluan Terdapat beberapa perbezaan antara penggunaan sedia ada vue2.x dan vue3.x. Yang berikut terutamanya menerangkan penggunaan keepaliev dalam vue3.0.

Biasanya kami boleh mengkonfigurasi keseluruhan cache halaman atau hanya membenarkan komponen tertentu untuk mengekalkan maklumat cache Jika laluan atau komponen keepalive dikonfigurasikan, kitaran hayat yang dicipta->dilekapkan hanya akan dilaksanakan apabila halaman dimulakan. . Bab 1 Apabila anda memasuki halaman untuk kali kedua atau kemudian, kitaran hayat tidak akan diubah, tetapi maklumat cache akan dibaca.

1. Cache konfigurasi penghala

1) Langkah pertama: Konfigurasikan App.vue
vue2.x dan vue3.0 Terdapat perbezaan dalam konfigurasi App.vue Maklumat konfigurasi App.vue adalah seperti berikut:
Dalam vue2.x, paparan penghala boleh diletakkan sepenuhnya dalam keepalive, seperti berikut:

<template>
	<!-- vue2.x配置 -->
   <keep-alive>
    <router-view v-if="$route.meta.keepAlive" />
  </keep-alive>
  <router-view v-if="!$route.meta.keepAlive"/></template>
Salin selepas log masuk

vue3.0 App. Kaedah konfigurasi vue adalah seperti berikut:

<template>
  <!-- vue3.0配置 -->
  <router-view v-slot="{ Component }">
    <keep-alive>
      <component :is="Component"  v-if="$route.meta.keepAlive"/>
    </keep-alive>
    <component :is="Component"  v-if="!$route.meta.keepAlive"/>
  </router-view> </template>
Salin selepas log masuk

Komponen di sini ialah komponen khas dalam vue, :is digunakan untuk mengikat komponen yang ditentukan, berikut ialah pengikatan halaman yang sepadan dengan laluan .

2) Langkah kedua: Tambah atribut meta
Tambah atribut meta pada laluan yang sepadan untuk menetapkan sama ada halaman perlu menggunakan caching, seperti berikut:

{
  path: "/keepAliveTest",
   name: "keepAliveTest",
   meta: {
       keepAlive: true //设置页面是否需要使用缓存
   },
   component: () => import("@/views/keepAliveTest/index.vue")
 },
Salin selepas log masuk

Pada ketika ini, caching mudah halaman boleh dicapai, tetapi sesetengah senario memerlukan pemprosesan yang rumit Contohnya, sebahagian daripada maklumat halaman tidak perlu dibaca daripada cache Ia perlu diproses setiap kali ia dimasukkan. Pada masa ini, kita boleh menggunakan kitaran hayat yang diaktifkan untuk menyelesaikan soalan Muat semula halaman.

3) Realisasikan penyegaran halaman separa
Mula-mula fahami kitaran hayat vue, komponen dan halaman yang dibalut oleh keepAlive, kitaran hayat yang dilaksanakan apabila halaman itu dimasukkan ialah :dicipta->dilekap->diaktifkan;
Antaranya, dicipta->dilekapkan akan dilaksanakan hanya apabila halaman dimasukkan buat kali pertama Kitaran hayat yang diaktifkan akan dilaksanakan setiap kali halaman dimasukkan, terutamanya untuk keepAlive A kitaran hayat, jadi kami boleh meletakkan operasi yang akan dilakukan setiap kali halaman masuk ke dalam kitaran hayat ini.
Kod berikut:

activated() {
	// 页面每次进入将手机动态验证码置为空
   this.$refs.mobPwdCode.inputValue = '';},
Salin selepas log masuk

Fungsi yang dilaksanakan adalah untuk menetapkan kod pengesahan dinamik untuk kosong setiap kali pengguna masuk Fungsi ini juga boleh dilaksanakan dengan cara lain, seperti meletakkan komponen di luar cache (lihat 2. Cache konfigurasi komponen).

4) Tetapkan atribut keepAlive penghalaan secara dinamik
Kadang-kadang selepas kami menggunakan cache keepalive, kami mahu halaman tidak lagi kekal dicache atau menetapkan keepalive halaman seterusnya . Pada masa ini kami Anda boleh menukar nilai keepAlive meta untuk mengalih keluar cache halaman Gunakan beforeRouteEnter, dan beforeRouteLeave Penggunaannya adalah seperti berikut:

// to为即将跳转的路由,from为上一个页面路由beforeRouteLeave(to, from,+ next) {
    // 设置下一个路由的 meta
    to.meta.keepAlive = false;
    next();}
Salin selepas log masuk

2

1) Senario penggunaan

Biasanya kami cache halaman dalam Vue, tetapi kadangkala kami hanya perlu cache komponen tertentu halaman, atau kami perlu cache komponen apabila menggunakan komponen komponen dinamik untuk menukar komponen.

2) Komponen yang ditentukan halaman cache

Apabila digunakan dalam App.vue, halaman yang sepadan dengan semua laluan adalah komponen yang sepadan dengan projek Kaedah penggunaan adalah seperti berikut:
dalam keep-alive Gunakan atribut include atau exclude pada komponen, seperti berikut: Gunakan include
untuk menyatakan bahawa komponen bernama testKA akan dicache,

// APP.vue文件,将页面作为组件缓存<router-view v-slot="{ Component }">
  <keep-alive include="testKA">
    <component :is="Component"/>
  </keep-alive></router-view>
Salin selepas log masuk

Dalam halaman yang sepadan dengan penghala, anda perlu menetapkan atribut nama, seperti berikut:

export default {
    name:'testKA',// keep-alive中include属性匹配组件name
    data() {return {}},
    activated() {
        // keepalive缓存的页面每次进入都会进行的生命周期
    },}
Salin selepas log masuk

Selain itu, sertakan penggunaan adalah seperti berikut:

<!-- 逗号分隔字符串 --><keep-alive include="a,b">
  <component :is="view"></component></keep-alive><!-- 正则表达式 (使用 `v-bind`) --><keep-alive :include="/a|b/">
  <component :is="view"></component></keep-alive><!-- 数组 (使用 `v-bind`) --><keep-alive :include="[&#39;a&#39;, &#39;b&#39;]">
  <component :is="view"></component></keep-alive>
Salin selepas log masuk

kecualikan penggunaan adalah sama seperti termasuk penggunaan, mewakili komponen yang tidak dicache. Selain itu, keep-alive juga mempunyai atribut maks, yang mewakili bilangan maksimum komponen cache Setelah nombor ini dicapai, contoh komponen cache yang paling lama tidak diakses akan dimusnahkan sebelum kejadian baharu. dicipta.

<keep-alive :max="10">
  <component :is="view"></component></keep-alive>
Salin selepas log masuk

Apabila digunakan untuk menukar komponen pada halaman, penggunaannya adalah sama seperti penghalaan cache, tetapi ia hanya menurunkan taraf halaman kepada komponen dan komponen induk diturunkan daripada App.vue kepada yang sepadan halaman penghalaan.

3) Ringkasan

Semasa pertempuran sebenar, didapati bahawa apabila komponen cache keepalive ditemui, tidak boleh digunakan merentas peringkat ;, seperti menggunakan sertakan atribut untuk name= dalam App.vue Apabila "a" sepadan, ia hanya boleh memadankan sub-komponen (halaman penghalaan) dengan nama cache "a", tetapi tidak boleh cache komponen cucu (komponen yang dirujuk oleh sub-halaman) dengan nama "a".

Jika anda ingin cache komponen cucu, anda boleh cache keseluruhan subkomponen atau gunakan keepalive dalam subkomponen. Untuk arahan penggunaan keepalive, anda boleh pergi ke tapak web rasmi untuk mengetahui: https://v3.vuejs.org/guide/component-dynamic-async.html#dynamic-components-with-keep-alive

[Cadangan berkaitan: "tutorial vue.js"]

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara menggunakan keepAlive dalam projek vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

vue3+vite: Bagaimana untuk menyelesaikan ralat apabila menggunakan memerlukan untuk mengimport imej secara dinamik dalam src vue3+vite: Bagaimana untuk menyelesaikan ralat apabila menggunakan memerlukan untuk mengimport imej secara dinamik dalam src May 21, 2023 pm 03:16 PM

Penggunaan vue3+vite:src memerlukan pengimportan imej secara dinamik dan laporan ralat dan penyelesaian vue3+vite secara dinamik Jika vue3 dibangunkan menggunakan skrip taip, akan terdapat mesej ralat untuk keperluan untuk memperkenalkan imej tidak boleh digunakan :require(' .../assets/test.png') diimport kerana typescript tidak menyokong require, jadi import digunakan Berikut ialah cara menyelesaikannya: gunakan awaitimport

Cara menggunakan tinymce dalam projek vue3 Cara menggunakan tinymce dalam projek vue3 May 19, 2023 pm 08:40 PM

tinymce ialah pemalam editor teks kaya yang berfungsi sepenuhnya, tetapi memperkenalkan tinymce ke dalam vue tidak selancar seperti pemalam teks kaya Vue yang lain tidak sesuai untuk Vue dan @tinymce/tinymce-vue perlu diperkenalkan. dan Ia adalah pemalam teks kaya asing dan belum melepasi versi Cina Anda perlu memuat turun pakej terjemahan dari tapak web rasminya (anda mungkin perlu memintas tembok api). 1. Pasang kebergantungan yang berkaitan npminstalltinymce-Snpminstall@tinymce/tinymce-vue-S2 Muat turun pakej Cina 3. Perkenalkan pakej kulit dan Cina Buat folder tinymce baharu dalam folder awam projek dan muat turun

Cara memuat semula sebahagian kandungan halaman dalam Vue3 Cara memuat semula sebahagian kandungan halaman dalam Vue3 May 26, 2023 pm 05:31 PM

Untuk mencapai muat semula separa halaman, kami hanya perlu melaksanakan pemaparan semula komponen setempat (dom). Dalam Vue, cara paling mudah untuk mencapai kesan ini ialah menggunakan arahan v-if. Dalam Vue2, selain menggunakan arahan v-if untuk memaparkan semula dom setempat, kami juga boleh mencipta komponen kosong baharu Apabila kami perlu memuat semula halaman setempat, lompat ke halaman komponen kosong ini dan kemudian masuk semula pengawal beforeRouteEnter dalam komponen kosong. Seperti yang ditunjukkan dalam rajah di bawah, cara mengklik butang muat semula dalam Vue3.X untuk memuatkan semula DOM dalam kotak merah dan memaparkan status pemuatan yang sepadan. Memandangkan pengawal dalam komponen dalam sintaks persediaan skrip dalam Vue3.X hanya mempunyai o

Cara Vue3 menghuraikan penurunan harga dan melaksanakan penyerlahan kod Cara Vue3 menghuraikan penurunan harga dan melaksanakan penyerlahan kod May 20, 2023 pm 04:16 PM

Vue melaksanakan bahagian hadapan blog dan perlu melaksanakan penghuraian markdown Jika terdapat kod, ia perlu melaksanakan penyerlahan kod. Terdapat banyak pustaka parsing markdown untuk Vue, seperti markdown-it, vue-markdown-loader, marked, vue-markdown, dsb. Perpustakaan ini semuanya sangat serupa. Ditanda digunakan di sini, dan highlight.js digunakan sebagai pustaka penonjolan kod. Langkah-langkah pelaksanaan khusus adalah seperti berikut: 1. Pasang perpustakaan bergantung Buka tetingkap arahan di bawah projek vue dan masukkan arahan berikut npminstallmarked-save//marked untuk menukar markdown ke htmlnpmins.

Bagaimana untuk menyelesaikan masalah bahawa selepas projek vue3 dibungkus dan diterbitkan ke pelayan, halaman akses dipaparkan kosong Bagaimana untuk menyelesaikan masalah bahawa selepas projek vue3 dibungkus dan diterbitkan ke pelayan, halaman akses dipaparkan kosong May 17, 2023 am 08:19 AM

Selepas projek vue3 dibungkus dan diterbitkan ke pelayan, halaman akses memaparkan kosong 1. PublicPath dalam fail vue.config.js diproses seperti berikut: const{defineConfig}=require('@vue/cli-service') module.exports=defineConfig({publicPath :process.env.NODE_ENV==='pengeluaran'?'./':'/&

Bagaimana untuk memilih avatar dan memangkasnya dalam Vue3 Bagaimana untuk memilih avatar dan memangkasnya dalam Vue3 May 29, 2023 am 10:22 AM

Kesan terakhir ialah memasang komponen VueCropper yarnaddvue-cropper@next Nilai pemasangan di atas adalah untuk Vue3 Jika ia adalah Vue2 atau anda ingin menggunakan kaedah lain untuk merujuk, sila lawati alamat npm rasminya. Ia juga sangat mudah untuk merujuk dan menggunakannya dalam komponen Anda hanya perlu memperkenalkan komponen yang sepadan dan fail gayanya. Saya tidak merujuknya secara global di sini, tetapi hanya memperkenalkan import{userInfoByRequest}from'../js/api. ' dalam fail komponen saya import{VueCropper}dari'vue-cropper&

Cara menggunakan vue3+ts+axios+pinia untuk mencapai penyegaran yang tidak masuk akal Cara menggunakan vue3+ts+axios+pinia untuk mencapai penyegaran yang tidak masuk akal May 25, 2023 pm 03:37 PM

vue3+ts+axios+pinia menyedari penyegaran yang tidak masuk akal 1. Mula-mula muat turun aiXos dan pinianpmipinia dalam projek--savenpminstallaxios--save2. AxiosResponse}daripada"axios";importaxiosfrom'axios';import{ElMess

Cara menggunakan komponen boleh guna semula Vue3 Cara menggunakan komponen boleh guna semula Vue3 May 20, 2023 pm 07:25 PM

Prakata Sama ada ia adalah vue atau react, apabila kita menghadapi berbilang kod berulang, kita akan memikirkan cara untuk menggunakan semula kod ini, dan bukannya mengisi fail dengan sekumpulan kod berlebihan. Malah, kedua-dua vue dan react boleh mencapai penggunaan semula dengan mengekstrak komponen, tetapi jika anda menemui beberapa serpihan kod kecil dan anda tidak mahu mengekstrak fail lain, sebagai perbandingan, react boleh digunakan dalam yang sama Isytiharkan widget yang sepadan dalam fail , atau laksanakannya melalui fungsi render, seperti: constDemo:FC=({msg})=>{returndemomsgis{msg}}constApp:FC=()=>{return(

See all articles