Vue页面数据刷新处理(路由$route监听+Vuex处理)

vue组件内监听路由变化 需求分析:首頁面有两个组件,Artist组件和Tag组件,分别对应文章组件和标签组件,点击Tag组件的某项标签,要动态更新Artist组件里的内容,并且路由要有变化, 要根据Tag组件选中的tid去动态更新articles列表,那如何去传递这个tid给Artist组件呢? 因为两个组件不是父子组件所以不能用父子组件间的通信方法,又因为要求路由显示一定的查询信息,所以可以直接通过路由传递tid this.$router.push({path:"/home/getArticleByTag",query:{t 阅读详情

需求如下:如下问卷调查中,每做完一个问卷,相应的新任务数量(红色label)跟个人任务列表都需要少一条数据,假设下面截图一为页面1,截图2为页面2,页面2为页面1的子路由,如:{path:'/page1',component:PageOne,children:[{path:'page2',component:PageTwo}]},当由children路由/page1/page2跳回page1时,当用this.$router.push跳转回父级路由时候,会发现数据并没有刷新,因为数据初始化页面在mounted或者beforeMount实现,父组件并不会重新执行该事件

解决:一开始通过window.location.reload()进行刷新处理,但是发现在电脑模拟手机能刷新,在自己的p20PRO华为手机却刷新不了,网上看到其他方法,但是个人从一开始想到的方法是通过watch监听,因此有了以下的解决方法,最终实现通过监听路由$route和控制变量值实现更新

一、存储变量

Vuex  store.js(以下代码中,changeHome监听第一页即首页pageOne是否需要刷新,changeTest则是监听第二页pageTwo列表页是否需要刷新)

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
const state = {
  changeTest:0,//页面是否需要刷新
  changeHome:0//刷新首页
}

const mutations = {
  getChange(state,val){
    state.changeTest = val;
  },
  changeHome(state,val){
    state.changeHome =val;
  }
}

// 创建 store 实例
export default new Vuex.Store({
	state,
    mutations
})

二、pageOne.vue(当子页面返回要进入pageOne时候,路由watch会进行监听,先拿取store中changeHome的值,若已经被子路由设为了1,则重新加载数据);

(path:'/page1')
<template>
   <div>
    <div>this is pageOne</div>
    <button @click="jump()">点击进入子页面pageTwo</button>
     <transition name="router-slid" mode="out-in">
      <router-view></router-view>
    </transition>
   </div>
</template>
<script>
export default(){
    data(){
        return{}
    },
    watch(){
        $route(){
            //通过路由监听到vuex中存储的变量值,当值为1时候刷新,为默认值0时候不刷新
             let gettype = this.$store.state.changeHome;
               gettype==1?this.getData():return;
        }
    },
    methods(){
    getData(){//从接口拿取数据},
    jump(){
       //此处可设置为0,表示第一次进入,当没有做问卷返回时候并不需要再加载一次
     this.$store.commit("changeHome",0);
     }
    },
    mounted(){
    this.getData();
    //执行过一次通过子路由返回不在执行
    }
}
</script>

三、pageTwo.vue(子路由中将changeHome的值设置为1,告诉父级pageOne是从子路由返回回来的,父组件pageOne要重新初始化数据);

(path:'/page1/page2')
<template>
   <div class="p-contain">
     <div>this is pageTwo</div>
    <button type="button" @click="jump()">我要设置父级的changeHome为1</button>   
   </div>
</template>
<script>
export default(){
    data(){
        return{}
    },
 
    methods(){
       jump(){
         //更改store中changeHome值为1,再跳转会父组件pageOne.vue
           this.$store.commit("changeHome",1); this.$router.push({path:"/page1"})
       }
    },
    mounted(){
    
    }
}
</script>

自己写的demo在page1跟page2都有一个按钮进行模拟更改store中的值,实际中可以通过点击进入页面的入口进行对应的处理~不得不说监听$route用处很大,可以用来实现如面包屑等功能,通过这一例子也涨涨见识,Hope it can help you~

从零到一:桌面宠物的硬件架构设计与工程实践 本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。 阅读详情

相关推荐

Unity插件——WebView内嵌网页/浏览器插件

一、相关插件: 1、Embedded Browser 插件(文件夹名ZFBrowserUnity) 2、UniWebView插件 3、UnityAndroidWebviewToTexture插件 4、3D WebView for Android插件 二、遇到的问题: 3D WebView显示问题 项目中使用3D WebView存在的问题 三、插件使用 Embedded Browser 加载页面的使用

青岚岁叶的博客 1万+

刷新页面会导致页面路由重置的问题怎么解决

使用持久化存储:将路由信息存储在本地存储(如LocalStorage或SessionStorage)中,在应用程序初始化时从存储中读取路由信息,并恢复到相应的路由状态。这样在刷新页面后,可以从存储中获取路由信息,并重新导航到之前的路由。使用服务器端渲染(SSR):使用服务器端渲染技术将Vue应用程序的初始状态和路由信息在服务器端生成,并在页面加载时将其提供给客户端。这样,刷新页面时,服务器会重新生成页面,并保持路由状态的一致性。使用路由懒加载:通过使用路由懒加载,可以将路由组件按需加载。

weixin_51654689的博客 4367

IAR编译相同工程生产hex文件checksum不一致问题

IAR Checksum

xqw19891201的博客 1384

前端vue使用keepAlive: true,,解决页面缓存是否动态刷新的问题(可刷新可不刷新)

我们使用vue做项目时,,特别是搜索条件比较多的列表页时,搜索完后进入详情页,再从详情页回到列表页后数据重置,需要重新进行搜索,使用起来特别麻烦不友好。 所以比较友好的要求如下 : 1、从列表页进入详情页返回列表页时,连页数、筛选条件等都不能变,但是要列表刷新更新为最新的数据 2、列表页进数据编辑页再返回时,页数、筛选条件等都不能变,但是需要带条件刷新列表数据 3、不是详情页、编辑页进入列表页时,页数、筛选条件等都全部重置,列表数据刷新 4、列表页弹窗操作后,也需要带条件进行刷新数据...

migexiaoliang的博客 4512

ANSYS Workbench对称分析进阶:手把手教你用Pre-Meshed Cyclic Region处理外部导入的复杂网格模型

本文详细介绍了ANSYS Workbench中Pre-Meshed Cyclic Region功能在处理外部导入复杂网格模型时的应用。通过循环对称分析技术,可显著减少计算资源消耗,特别适用于叶轮机械、齿轮组等周期性结构分析。文章深入解析了该功能的底层逻辑,并提供了从NASTRAN文件导入的离心压缩机叶轮案例,帮助工程师克服网格匹配难题。

weixin_28630185的博客 315

vivado实现SDI接口

XAPP1249,用来介绍UHD_SDI的实现。

Huskar_Liu的博客 7078

vue2实现刷新后重新加载动态路由

在vue2中,如果使用了动态路由,因为http的无状态性,用户在登录状态下,每次刷新后都需要重新加载路由,否则就会出现刷新后页面丢失。具体实现是通过添加一个前置路由守卫的方法,并设置一个sessionStorage,在每一次跳转路由前进行一次判定。1.登录后设置一个sessionStorage用于判断用户是否刷新。这样就简单的解决了vue2动态路由下刷新后页面丢失的问题。2.设置一个路由前置守卫进行判定。

qq_50994125的博客 4445

华为CNA VRM搭建(使用vmware worfstartion搭建)

华为CNA和VRM在 vmware workstation安装使用

weixin_70595351的博客 1813

Vue 监听路由变化的三种方式

方法一:通过 watch // 监听,当路由发生变化的时候执行 watch:{ $route(to,from){ console.log(to.path); } }, 或 // 监听,当路由发生变化的时候执行 watch: { $route: { handler: function(val, oldVal){ console.log(val); }, // 深度观察监听 deep: true } }, 或 // 监听,..

我驾驶汽车从不是为了从A点到达B点,我喜欢去感受汽车,与之交流,与之融为一体。 3万+

ESXI 8.0虚拟机安装OpenWRT软路由详细教程

OpenWrt 是嵌入式的 Linux 路由器固件,OpenWrt在稳定运行的同时提供了强大的扩展能力,用户可以完全的定制属于自己的路由系统,满足不一样的个性化需求,本文讲解如何使用ESXI安装OpenWRT,打造属于自己的软路由。本次安装使用的是版本。默认登录信息:用户:root密码:password下载固件:https://github.com/haiibo/OpenWrt/releases/tag/X86_64【CPU配置】:4核心。

qq_27121281的博客 3917

三维Copula建模进阶:从对称、嵌套到Pair-Copula(C-Vine/D-Vine)到底怎么选?

本文深入探讨三维Copula建模的进阶策略,包括对称Archimedean、嵌套结构和Vine Copula(C-Vine/D-Vine)的选择方法。通过对比数学特性、计算复杂度和实际应用案例,提供了一套针对金融风险分析等场景的决策框架,帮助分析师根据数据特征选择最优模型。

weixin_27038701的博客 436

【Vue】监控路由与路由参数, 刷新当前页面数据的几种方法

在这个示例中,我们在组件的`data`选项中定义了一个`monitoredParam`属性,用于存储监控的参数值。当监控的参数发生变化时,`watch`函数会被触发,将新的参数值保存到组件的`monitoredParam`属性中。在这个示例中,我们在组件的`data`选项中定义了一个`monitoredRoute`属性,用于存储监控的路由信息。当路由发生变化时,`watch`函数会被触发,将新的路由信息保存到组件的`monitoredRoute`属性中。

慕白Lee的博客 1万+

MMC混合型换流器系统设计与开关模型仿真

摘要:本文针对220kV交流/400kV直流电压等级,设计了由20个半桥和20个全桥子模块组成的混合型MMC换流器系统。通过建立开关函数等效模型,研究了其拓扑结构、工作原理及控制策略,包括NLM调制、电容电压均衡和环流抑制。MATLAB/Simulink仿真结果表明,系统直流电压波动控制在±5%以内,交流电流THD低于1.8%,验证了混合型MMC在高压大功率应用中的良好性能。该研究为工程实践提供了参考依据。 关键词:模块化多电平换流器;开关函数模型;混合子模块;最近电平逼近调制;电容电压均衡

huanghm88的专栏 134

vue监听路由变化

前言: 向我们在vue项目中很多情况会遇到跨组件调用时间,有的时候vuex比较适合,有的时候是希望路由变换在调用方法。 一、监听路由从哪儿来到哪儿去 比如:我们想通过跳转改变路由从而 刷新侧边栏,或者头部选中的内容时候,就可以在你的侧边栏组件或者头部组件里面用下面这个,推荐第一个,很实用 watch:{ $route(to,from){ console.log(from.path);//从哪来 console.log(to.path);//到哪去 this...

浩星 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Vue.js 监听路由变化的各种方法

方法一:通过 watch 1 2 3 4 5 6 // 监听,当路由发生变化的时候执行 watch:{   $route(to,from){     console.log(to.path);   } }, 或 1 2 3 4 5 ...

gooodi的博客 3614

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

vue 监听路由变化

方法一:通过 watch123456// 监听,当路由发生变化的时候执行watch:{  $route(to,from){    console.log(to.path);  }},或12345678910// 监听,当路由发生变化的时候执行watch: {  $route: {    handler: function(val, oldVal){      console.log(val);  ...

wandoumm的博客 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

vue刷新路由,不刷新页面

1.路由介绍 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。 2.刷新路由 对于路由,不同的路由跳转,vue会帮我...

anda9128的博客 349

Vue页面监听数据变化

最近开发遇到这样一种情景,某个页面需要根据路由query查询参变化执行对应的操作,放在生命周期钩子函数里面都不太合适,因为生命周期钩子函数是针对组件的不是针对页面的,所以需要通过watch监听路由query查询参的变化,代码如下: watch: { '$route.query': { if (this.$route.query.xx) { //根据xx参数值的情况,执行对应的操作.... } }, deep: true } ...

codezha的博客 2886

Vue监听route属性

Vue Router是Vue.js的官方路由管理器,它提供了声明式的路由配置方式,并支持嵌套路由、嵌套视图、导航守卫等功能。通过Vue Router,我们可以轻松地实现SPA的路由管理。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1855

vue 监听路由变化几种方法(好文章,全!!)

方法一:通过 watch 1 2 3 4 5 6 // 监听,当路由发生变化的时候执行 watch:{ $route(to,from){ console.log(to.path); } }, 或 1 2 3 4 5 6 7 8 9 10 // 监听,当路由发生变...

HD243608836的博客 2116

vue 检测路由变化_vue 监听路由变化

方法一:通过 watch// 监听,当路由发生变化的时候执行watch:{$route(to,from){console.log(to.path);}},或// 监听,当路由发生变化的时候执行watch: {$route: {handler: function(val, oldVal){console.log(val);},// 深度观察监听deep: true}},或// 监听,当路由发生变化的...

weixin_39834205的博客 597

vue 刷新当前路由

1.路由介绍 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。 2.刷新路由 对于路由,不同的路由跳转,vue会帮我们刷新路由...

看风听雨 3万+

vue监听路由实时变化

方法一:通过 watch // 监听,当路由发生变化的时候执行 watch:{ $route(to,from){ console.log(to.path); } }, 或 // 监听,当路由发生变化的时候执行 watch: { $route: { handler: function(val, oldVal){ console.log(val); }...

qq_45515863的博客 491
上一篇: 自定义封装Vue倒计时组件vuecountdown
下一篇: CSS常见基础布局(满屏布局,左右,左中右布局)
小简GoGo
博客等级 码龄10年 50粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值