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 通用简单的table选项卡实现
May 07 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
Apr 12 Javascript
动态获取复选框checkbox选中个数的jquery代码
Jun 25 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
javascript 拷贝节点cloneNode()使用介绍
Apr 03 Javascript
jquery浏览器滚动加载技术实现方案
Jun 03 Javascript
IE6浏览器中window.location.href无效的解决方法
Nov 20 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
详解Node.js异步处理的各种写法
Jun 09 Javascript
vue组件是如何解析及渲染的?
Jan 13 Vue.js
如何自动化部署项目?折腾服务器之旅~
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
如何做到多笔资料的同步
2006/10/09 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
使用js实现数据格式化
2014/12/03 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
使用nodejs下载风景壁纸
2017/02/05 NodeJs
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
详解flask表单提交的两种方式
2018/07/21 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
PHP面试题集
2016/12/18 面试题
JPA面试常见问题
2016/11/14 面试题
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
老公保证书怎么写
2015/02/26 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
幼儿园见习总结
2015/06/23 职场文书