vue项目如何实现导航栏中的前进和后退都要刷新页面?

vue项目如何实现导航栏中的前进和后退都要刷新页面?

现在前进和后退页面并没有重新加载

阅读 2.7k
2 个回答

没刷新是因为只有 query 变了,解决办法是:

<template>
    <el-container class="full-height">
        <el-header class="header-style">
            <Header/>
        </el-header>
        <el-container>
            <el-aside class="aside-width">
                <Menu/>
            </el-aside>
            <el-main class="main-container">
                //  通过 isReloadInstance 让视图重新渲染
                <router-view v-if="!isReloadInstance"/>
            </el-main>
        </el-container>
    </el-container>
</template>
<script>
import Menu from './base-model/menu';
import Header from './base-model/header';

export default {
    data() {
        return {
            isReloadInstance: false
        };
    },
    components: {
        Menu,
        Header
    },
    mounted() {
        window.addEventListener('popstate', (e)=>{
            this.isReloadInstance = true;
            this.$nextTick(() => {
                this.isReloadInstance = false;
            });
        }, false);
    }

};

前进后退如果路由改变了肯定是会刷新页面的,除非你的页面用了keep-clive或者跳转的是同一个路由

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏