keek-alive 手动刷新问题

1. 在写路由的页面, 注意exclude要先排除需要刷新的组件

```

<div class="app-main-ctn">

            <!-- <router-view :key="key" /> -->

            <keep-alive :exclude="exclude">

              <router-view v-if="$route.meta.keepAlive && isRouterAlive"  :key="key" />

            </keep-alive>

            <router-view v-if="!$route.meta.keepAlive" :key="key" />

          </div>

 data() {

    return {

      isRouterAlive:true,

      exclude: null,

    };

  },

 provide(){

        return{

           reload:this.reload

        }

    },

 methods: {

    reload() {

      console.log('reload');

       this.isRouterAlive =false;

      //  keepAlive专属

       this.exclude = 'NewPlan'

           this.$nextTick(function(){

             console.log('reload22');

             console.log(this.exclude);

             this.exclude = null

            this.isRouterAlive=true

           })

    }

  }

```

在NewPlan页面

name: "NewPlan",//一定要和exclude相对应

inject: ['reload'],

触发this.reload() 执行手动刷新


转自: https://blog.csdn.net/hardly555/article/details/89540083

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容