网上查了很多资料,发现都是这么实现页面刷新的,这个问题困扰了很久。
希望有好心人指导我如何正确使用key属性来完成页面刷新
<template>
<!-- 路由组件出口 -->
<!-- v-slot可以获取当前渲染的组件以及路由信息 -->
<router-view v-slot="{ Component }">
<transition name="fade">
<!-- 渲染home一级路由的子路由 -->
<component :is="Component" :key="refreshContent"/>
</transition>
</router-view>
</template>
<script setup lang="ts">
import emitter from "@/utils/emitter";
import { onUnmounted, onMounted } from "vue";
let refreshContent = 0
emitter.on('refresh_content', () => {
refreshContent += 1
console.log(refreshContent)
})
onMounted(() => {
console.log('load')
})
onUnmounted(() => {
emitter.off('refresh_content')
console.log('unload')
})
</script>
<style scoped>
.fade-enter-from {
opacity: 0;
transform: scale(0)
}
.fade-enter-to {
opacity: 1;
transform: scale(1);
}
.fade-enter-active {
transform: all 0.5s;
}
</style>```
网上查了很多资料,发现都是这么实现页面刷新的,这个问题困扰了很久。
希望有好心人指导我如何正确使用key属性来完成页面刷新
需要设置refreshContent为响应式数据,如
refreshContent = ref(0); refreshContent.value += 1
;