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 相关文章推荐
IE下支持文本框和密码框placeholder效果的JQuery插件分享
Jan 31 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
浅谈node.js中async异步编程
Oct 22 Javascript
解析利用javascript如何判断一个数为素数
Dec 08 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
react router 4.0以上的路由应用详解
Sep 21 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
Sep 10 Javascript
vue计算属性+vue中class与style绑定(推荐)
Mar 30 Javascript
Vue 打包体积优化方案小结
May 20 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
FCKeditor的安装(PHP)
2007/01/13 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
环保专业大学生职业规划设计
2014/01/10 职场文书
白血病捐款倡议书
2014/05/14 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
民主评议党员总结
2014/10/20 职场文书
文案策划岗位职责
2015/02/11 职场文书
放射科岗位职责
2015/02/14 职场文书
雷锋观后感
2015/06/10 职场文书
总经理致辞
2015/07/29 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android