1. vue3中keep-alive写法
<template>
<router-view v-slot="{ Component }">
<transition name="slide-fade" mode="out-in">
<keep-alive :include="arr">
<component :is="Component" />
</keep-alive>
</transition>
</router-view>
</template>
<script lang="ts" setup>
const arr:string[] = ['roleIndex','basicPersonal']
</script>
<style>
.slide-fade-enter-active {
transition: all 0.3s ease-out;
}
.slide-fade-leave-active {
transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
}
.slide-fade-enter-from,
.slide-fade-leave-to {
transform: translateX(20px);
opacity: 0;
}
</style>
2. keep-alive include失效问题
因为keep-alive include必须要命名组件,在setup语法糖中无法为组件命名所有只需更改写法。
// 原写法 <script setup lang="ts">
<script lang="ts">
import { defineComponent } from "vue"
export default defineComponent({
name:'xxxx'
})
</script>
这样子就ok了