放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

      • vue 配置
      • vue环境
      • vue国际化
      • vue指令
      • vue页面刷新
        • vue 刷新当前页面的方式
          • 1. 使用 location api
          • 2. 先进入一个空路由,然后返回
          • 3. 使用 provide / inject
      • vue混入
      • vue-other
      • vue二维码
      • vue防抖节流
      • vue svg
      • vue图片
      • vue echarts图表
      • vue复制
    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2020-07-09

vue页面刷新

# vue 刷新当前页面的方式

# 1. 使用 location api

window.location.href 或者 window.location.replace()

window.location.reload()
1

会出现空白,体验不是很好

# 2. 先进入一个空路由,然后返回

reflashPage(){
    let NewPage = '_empty' + '?time=' + new Date().getTime()/500;
    this.$router.push(NewPage);
    this.$router.go(-1);
}
1
2
3
4
5

刷新后点浏览器的前进按钮会出现空白页

# 3. 使用 provide / inject

简单的来说就是在父组件中通过 provide 来提供变量,然后在子组件中通过 inject 来注入变量。

app.vue

<template>
  <div id="app">
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</template>
<script>
export default {
  name: 'App',
  provide(){
    return{
      reload:this.reload
    }
  },
  data(){
    return{
      isRouterAlive:true
    }
  },
  methods:{
    reload(){
      this.isRouterAlive = false;
      this.$nextTick(function(){
        this.isRouterAlive = true;
      })
    }
  }
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

需要跳转的页面: 前面会有这个 inject

export default {
    inject:['reload'],
    data () {
        return {
        ...
        }
    },
1
2
3
4
5
6
7

后面想刷新当前页面的地方这样写: this.reload();

Vue 是双向数据绑定的,操作数据实时变化,大多情况不需要刷新页面。
之前在做表单清空时用到了页面刷新,表单的数据比较多逐个清空比较麻烦。
最近做页面拖拽排版效果,使用了 jq 的插件操作 dom 没有同时操作数据,导致数据和 dom 不一致,后来选择用刷新页面来做到统一。

更新时间: 3/22/2021, 4:43:19 PM
vue指令
vue混入

← vue指令 vue混入→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式