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 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
May 24 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
jQuery选择器源码解读(八):addCombinator函数
Mar 31 Javascript
JavaScript中判断函数、变量是否存在
Jun 10 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
Jul 01 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
JavaScript解析机制与闭包原理实例详解
Mar 08 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
react 项目中引入图片的几种方式
Jun 02 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
国内php原创论坛
2006/10/09 PHP
php pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
python使用正则表达式提取网页URL的方法
2015/05/26 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python处理session的方法整理
2019/08/29 Python
python 串行执行和并行执行实例
2020/04/30 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
人事专员的职责
2014/02/26 职场文书
政风行风评议整改方案
2014/09/15 职场文书
2014年保卫工作总结
2014/12/05 职场文书
童年读书笔记
2015/06/26 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript