vue刷新页面

博客探讨了在Vue应用中实现页面刷新的几种方法,包括尝试使用vue-router、window.reload()和router.go(0),但发现效果不佳。作者推荐在App.vue中声明reload()方法,并通过provide/inject在子组件中调用,以实现更佳的刷新体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试了vue-router重新路由到当前页面但页面并没有进行刷新、用window.reload()、router.go(0)刷新,浏览器重新加载了,体验不好

于是百度到声明reload方法,控制router-view的显示、隐藏

首先在App.vue里声明reload()方法

<template>
  <div id="app">
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</template>

<script>
  export default {
  name: 'App',
    provide(){
      return{
        reload:this.reload
      }
    },
    data(){
    return{
      isRouterAlive:true
    }
    },
    methods:{
    reload(){
      this.isRouterAlive=false
      this.$nextTick(function () {
        this.isRouterAlive=true
      })
    }
    }
}
</script>

然后在需要的页面注入App.vue组件提供(provide)的 reload 依赖,直接this.reload()进行调用

<script>
  export default {
    name: 'businessApplication',
    inject:['reload'],
    data(){
      return{
        productDetail:{},
        form: {
          phone:'',
          name:'',
          state:-1,
          page:1,
          size:9999
        }
      }
    },
    methods:{
      initData(){
        ApiClient.get('/backend/product/list.do',this.list).then(data => {
          this.pagination = data.items
          this.total = data.total;
        });
      },
    
      addBusiness(name){
         ApiClient.post('/backend/business/add.do', this.businessAdd).then(() => {
            this.reload()
          })
      },
     }
    mounted() {
      this.initData()
    },
    activated(){
      this.initData()
    }
  }
</script>

 

 

VUE几种页面刷新方法 https://blog.youkuaiyun.com/baidu_39418435/article/details/81538760

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值