vue刷新当前页面的方法

vue刷新当前页面的方法第一个想到的方法是 this router push 但是会报错 不让自己页面跳转自己页面 就算解决了这个问题跳转了之后 dom 也不会渲染 页面的数据显示不出来 所以查询了一下方法来解决问题 location reload 不推荐 页面出现一瞬间的空白这个方法相当于 ctrl R 刷新当前页面 但是刷新过后 vuex 里面的值也会重新刷新 当我们要实现多个组件根据 vuex 里面的值做相应的判断时 这个功能不能实现 于是我们结合 window se

第一个想到的方法是this.$router.push() , 但是会报错 , 不让自己页面跳转自己页面 , 就算解决了这个问题跳转了之后 , dom也不会渲染 , 页面的数据显示不出来 , 所以查询了一下方法来解决问题

location.reload() 不推荐 : 页面出现一瞬间的空白

  1. 这个方法相当于( ctrl + R )刷新当前页面 , 但是刷新过后vuex里面的值也会重新刷新 , 当我们要实现多个组件根据 vuex 里面的值做相应的判断时 , 这个功能不能实现 , 于是我们结合window.sessionStorage.getItem() 和 vuex以实现vuex中的值在本次会话的时候不会被刷新
//freeze状态只出现一次 , 解封之后知道浏览器关闭都不在出现 this.$store.commit('changeFreeze') // 1. dom没有渲染 , 我们要重新渲染dom  location.reload()//这种刷新方式太耗能了,亟待优化 // 2. 强制刷新之后freeze还会出现-->把值保存在session中 window.sessionStorage.setItem('freeze',0) 以下是vuex中的 freeze: window.sessionStorage.getItem('freeze') || 1, dom页面根据vuex中的freeze来判断显不显示 <div class="all0" v-if="this.$store.state.freeze===1"> 

provide / inject

使用provide / inject 来实现 当前页面刷新 , 组件自身刷新 , 并且重新渲染dom

父组件中编写provide向子组件提供资源 , 利用 v-if ,来显示app在dom树上存在与否

<template> <div id="app"> <router-view v-if="isRouterAlive"/> </div> </template> <script> export default { 
    provide() { 
    return { 
    reload:this.reload } }, data() { 
    return { 
    isRouterAlive:true } }, methods: { 
    reload(){ 
    this.isRouterAlive = false this.$nextTick(function(){ 
    this.isRouterAlive = true }) } }, } </script> 

子组件中inject使用父组件提供的方法

export default { 
    //注入刷新依赖provide/inject inject:['reload'], methods:{ 
    //使用inject中的方法 this.reload() } } 

nextTick

在下次dom刷新之后调用它的回调函数

上面的nextTick的作用是在app刷新之后 , 重新给data中的 isRouterAlive 赋值true

this.$nextTick(function(){ 
    this.isRouterAlive = true }) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229133.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:24
下一篇 2026年3月16日 下午5:24


相关推荐

  • Android自定义View:MeasureSpec的真正意义与View大小控制

    Android自定义View:MeasureSpec的真正意义与View大小控制自定义 View 是 Android 开发中最普通的需求 灵活控制 View 的尺寸是开发者面临的第一个问题 比如 为什么明明使用的是 WRAP CONTENT 却跟 MATCH PARENT 表现相同 在处理 View 尺寸的时候 我们都知道最好在 onMeasure 中设定好自定义 View 尺寸 那么究竟如何合理的选择这个尺寸呢 直观来说 可能有以下问题需要考虑 自定的 View 最好不要超过父控件的大小 这样才能保证自己

    2026年3月18日
    2
  • 【leetcode】23. Merge k Sorted Lists

    【leetcode】23. Merge k Sorted Lists

    2021年6月10日
    122
  • java基础菜鸟教程_java基础菜鸟教程大全,java入门「建议收藏」

    java基础菜鸟教程_java基础菜鸟教程大全,java入门「建议收藏」java这个词语相信大家都听的耳朵快要起茧了吧,就算是没学过编程的小伙伴也一定听说过java,谁让它如今几乎火遍大江南北呢。这次我们就来讲解一些常见的java基础,希望能够让你们更加了解java。java基本概念一、什么是程序?为了完成任务,执行一系列有序的指令的集合。指令:命令。二、Java程序设计2.1什么是Java?是撰写跨平台,面向对象的计算机语言。2.2Java能做什么?开发桌面应用…

    2022年5月1日
    80
  • php连接ldap服务器,使用PHP连接LDAP服务器[通俗易懂]

    php连接ldap服务器,使用PHP连接LDAP服务器[通俗易懂]LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。简单说来,LD…

    2022年5月15日
    35
  • inherits在java中是什么属性_inherits属性

    inherits在java中是什么属性_inherits属性今天在错误列表里报了这样的一个错误 情确保此代码文件中定义的类与 inherits 属性匹配 并且该类扩展的基类 例如 Page 或 Control 是正确的 呃 当时心情好无语 好抓狂 妈蛋 这个星期就要交工了 这时的错误简直坑爹我的心窝 心理面一万只草泥马在奔腾 啊啊啊啊啊 把页面翻了个变 错误还是没找到 我只好去问度娘了 度娘说 1 可能是你对添加的页面文件进行了重命名引起的

    2026年3月18日
    2
  • NOIP2012 借教室[通俗易懂]

    NOIP2012 借教室[通俗易懂]2借教室题目描述在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租借教室的信息,我们自然希望编程解决这个问题。 我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj,sj,tj,表示某租借

    2022年8月22日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号