vue实现局部刷新的实现示例


Posted in Javascript onApril 16, 2019

利用Vue里面的provide+inject组合(走过路过,不要错过)

使用2.2.0 新增的provide / inject控制<router-view>的显示隐藏

在App.vue中使用provide

//App.vue
<template>
  <div>
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</template>

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

在使用局部刷新的组件中使用inject

<script>
  export default {
    name: 'myComponent',
    data () {
      return {}
    },
    inject: ['reload'], //注入
    methods: {
      myCallBack(){
        // ...
        this.reload() //局部刷新
      }
    }
  }
</script>

其他的刷新页面方法

  • window.location.reload() //有白屏

默认参数是 false,它会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变;

如果文档已改变,reload() 会再次下载该文档;

如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。

参数为 true,无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样

  • this.$router.go(0) //有白屏

先跳转到一个空白页面再跳转回来 //虽不会一闪,但是能看见路由快速变化

//需要页面刷新的地方,跳转到一个空白页
this.$router.push('/emptyPage')

//空白页
beforeRouteEnter (to, from, next) {
   next(vm => {
    vm.$router.replace(from.path)
   })
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习jquery之一
Apr 27 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
Apr 25 Javascript
javascript管中窥豹 形参与实参浅析
Dec 17 Javascript
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
jQuery写的日历(包括日历的样式及功能)
Apr 23 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
实现只能输入数字的input不用replace方法
Sep 12 Javascript
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 #Javascript
每周一练 之 数据结构与算法(Stack)
Apr 16 #Javascript
在vue中获取微信支付code及code被占用问题的解决方法
Apr 16 #Javascript
JavaScript实现选项卡效果的分析及步骤
Apr 16 #Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
Apr 16 #Javascript
详解滑动穿透(锁body)终极探索
Apr 16 #Javascript
一些手写JavaScript常用的函数汇总
Apr 16 #Javascript
You might like
sony ICF-2010 拆解与改装
2021/03/02 无线电
php调整服务器时间的方法
2015/04/03 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
javascript中this指向详解
2016/04/23 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
Python中自定义函数的教程
2015/04/27 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
Python 操作文件的基本方法总结
2017/08/10 Python
Python合并多个Excel数据的方法
2018/07/16 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
实习生自荐信范文
2013/11/13 职场文书
承诺书范本
2015/01/21 职场文书
销售业务员岗位职责
2015/02/13 职场文书
加入学生会自荐书
2015/03/05 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书