zoukankan      html  css  js  c++  java
  • vue中刷新页面

    当我们页面中有数据发生变化或者进行了某些操作的时候,需要将变化后的结果展示,也就是刷新页面,像F5这种刷新会导致页面闪烁,还有 window.reload(),或者router.go(0)刷新时也是,用户体验很差,所以我们需要一种页面不抖动的刷新方式

    解决办法:

    第一种适合大多数情况

    在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()调用

    有一点千万要注意,不要在生命周期中调用,会陷入死循环

    刷新之后进入页面,执行生命周期函数再次调用又刷新了,导致页面一直在刷新

    第二种

    如果是类似页面中表格展示数据这种,当数据发生变化可直接再次发送请求刷新页面,而且这种刷新并不会让页面返回到第一页(如果有分页功能的话),如果是数据变化需要刷新页面,这种可能会好些

  • 相关阅读:
    H3C日志文件读取
    sql2000 转sql2008
    常用sql大全
    安装linux后,重新装windows,修复mbr引导
    SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值
    ORCLE 截取固定字符
    又是一个无聊的周未
    转一个无聊的爱情故事:如果有个女生为你哭
    Windows Mobile 6 SDK
    扩展FCKeditor
  • 原文地址:https://www.cnblogs.com/kingjordan/p/12026979.html
Copyright © 2011-2022 走看看