Vue刷新页面的三种方式

我们在写项目的时候,经常会遇到,用户执行完某个动作,改变了某些状态,需要重新刷新页面,以此来重新渲染页面。如:用户登录成功、增加、删除、更新等。

原始方法:
location.reload();
vue自带的路由跳转:
this.$router.go(0);
用过的人都知道,前两者都是强制刷新页面,会出现短暂的闪烁,用户体验效果不好。
所以,我们选择第三种方式:

  1. 首先在App里面写下如下代码:
<template>
    <div id="app">
        <router-view v-if="isRouterAlive"></router-view>
    </div>
</template>
<script>
    export default {
        name: 'App',
        provide () {    //父组件中通过provide来提供变量,在子组件中通过inject来注入变量。                                             
            return {
                reload: this.reload                                              
            }
        },
        data() {
            return{
                isRouterAlive: true                    //控制视图是否显示的变量
            }
        },
        methods: {
            reload () {
                this.isRouterAlive = false;            //先关闭,
                this.$nextTick(function () {
                    this.isRouterAlive = true;         //再打开
                }) 
            }
        },
    }
</script>

接下来,我们就可以在需要刷新页面的组件里这样写:

export default {
    inject:['reload'],                                 //注入App里的reload方法
    data () {
        return {
        .......
        }
    },

在需要刷新页面的代码块中使用:
this.reload();
原文链接:https://blog.csdn.net/weixin_43885417/article/details/91310674

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.背景介绍 vue router是vue.js官方的路由管理器,它和vue.js的核心深度集成,让构建单页面应用...
    expecto_5357阅读 506评论 0 1
  • 这是一篇集合了从如何查看 vue-router源码(v3.1.3),到 vue-router源码解析,以及扩展了相...
    尤小小阅读 5,717评论 2 14
  • vue的特点 Vue.js是一款轻量级的以数据驱动(数据的变化将引起视图的变化)的构建单页面应用的mvvm框架,它...
    阿踏阅读 2,065评论 1 11
  • 庆山原名安妮宝贝,安妮宝贝的书是少女系,年轻的时候读过,后来年纪大了,觉得幼稚就不在读了。 后来偶然间...
    龙门崇坤阅读 2,687评论 0 0
  • 电脑教室内,键盘敲打声此起彼伏。 期末考核前的小测试题目不是很多。扫一眼题,嘿,小case,很多题昨天老师还强调讲...
    食梦为梦而活阅读 429评论 2 4

友情链接更多精彩内容