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 相关文章推荐
JavaScript 空位补零实现代码
Feb 26 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
Mar 04 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
Sep 01 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
javascript实现拖放效果
Dec 16 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
jQuery插件版本冲突的处理方法分析
Jan 16 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
node(koa2) web应用模块介绍详解
Mar 29 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设计模式之命令模式使用示例
2014/03/02 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
asp批量修改记录的代码
2008/06/25 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
js charAt的使用示例
2014/02/18 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
python实现杨辉三角思路
2017/07/14 Python
Python MD5加密实例详解
2017/08/02 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
django的settings中设置中文支持的实现
2019/04/28 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
Python关于反射的实例代码分享
2020/02/20 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
春节晚会主持词
2014/03/24 职场文书
满月酒主持词
2014/03/27 职场文书
村委会贫困证明范本
2014/09/17 职场文书
2014年收银工作总结
2014/11/13 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python