首页前端开发VUEvue项目刷新当前页面的三种方式(重载当前页面数据)

vue项目刷新当前页面的三种方式(重载当前页面数据)

时间2024-02-11 06:21:03发布访客分类VUE浏览552
导读:收集整理的这篇文章主要介绍了vue项目刷新当前页面的三种方式(重载当前页面数据 ,觉得挺不错的,现在分享给大家,也给大家做个参考。 目录vue项目刷新当前页面的三种方式(重载当前页面数据...
收集整理的这篇文章主要介绍了vue项目刷新当前页面的三种方式(重载当前页面数据),觉得挺不错的,现在分享给大家,也给大家做个参考。
目录
  • vue项目刷新当前页面的三种方式(重载当前页面数据)
    • 一、this.$router.go(0)
    • 二、location.reload()
    • 三、用provide / inject 组合
  • PS:vue项目刷新当前页面的三种方法

    vue项目刷新当前页面的三种方式(重载当前页面数据)

    一、this.$router.go(0)

    相当于F5刷新,这种方法虽然代码很少,只有一行,但是体验很差。页面会一瞬间的白屏,体验不是很好

    二、location.reload()

    这种也是一样,画面一闪,体验不是很好,相当于页面刷新

    推荐解决方法:

    三、用PRovide / inject 组合

    原理:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效
    在App.vue,声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载。

    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()调用,即可刷新当前页面。

    注入reload方法

    export default {
      inject: ['reload'], }
        

    在需要重载的地方直接调用

    this.reload()

    PS:vue项目刷新当前页面的三种方法

    1、最直接整个页面重新刷新。

    location. reload();
        this.$router.go(0);
        // 这两种都可以刷新当前页面的,缺点就是相当于按ctrl+F5 强制刷新那种,整个页面重新加载,会出现一个瞬间的空白页面,体验不好。

    2、新建一个空白页面,点击确定的时候先跳转到这个空白页,然后再立马跳转回来。这个方式,相比第一种不会出现一瞬间的空白页,只是地址栏有个快速的切换的过程,也可采用。
    3、provide / inject 刷新相对比较理想。

    //首先在app.vue进行修改template>
            div id="app">
              // 控制router-view的显示或隐藏,从而控制页面的再次加载      router-view v-if="isRouterAlive"/>
            /div>
        /template>
        script>
    export default {
      name: "App",  provide() {
        return {
          reload : this.reload,    }
      }
    ,  data() {
        return {
          isRouterAlive:true,    }
        ;
      }
    ,  created(){
    }
    ,  methods: {
        // 通过声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载    reload(){
              this.isRouterAlive = false;
              this.$nextTick(() =>
     {
                this.isRouterAlive = true;
          }
    )    }
    ,  }
    ,}
        ;
        /script>
        

    在需要刷新的页面引入后直接调用即可

    template>
          div>
        	el-button icon="el-icon-refresh" @click="refresh">
        点击刷新/el-button>
          /div>
        /template>
        script>
    export default {
    //引用vue reload方法  inject: ['reload'],  name:"",  data() {
    	return {
    	}
      }
    ,methods: {
        refresh () {
          this.reload()    }
      }
    }
        /script>
        

    这样就实现了子组件调取reload方法就实现了刷新vue组件的功能,而且实现了组件跨越层级传递数据方法。

    到此这篇关于vue项目刷新当前页面的三种方式(重载当前页面数据)的文章就介绍到这了,更多相关vue刷新当前页面内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

    您可能感兴趣的文章:
    • Vue全家桶入门基础教程
    • Vue全家桶实践项目总结(推荐)
    • 一篇Vue、React重点详解大全
    • vue跨窗口通信之新窗口调用父窗口方法实例
    • vue通过url方式展示PDF的几种方法
    • vue全家桶-vuex深入讲解

    声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


    若转载请注明出处: vue项目刷新当前页面的三种方式(重载当前页面数据)
    本文地址: https://pptw.com/jishu/609432.html
    Vue实现动态路由导航的示例 iView UI FORM 动态添加表单项校验规则写法实例

    游客 回复需填写必要信息