当前位置:首页 > wifi设置知识 > 正文内容

vue多级路由刷新问题

秋天2023年02月28日 12:06:13wifi设置知识317

本篇文章给大家谈谈vue多级路由刷新问题,以及vue路由局部刷新对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文内容目录一览:

vue中的页面刷新问题

1. 用vue-router重新路由到当前页面,页面是不进行刷新的

2.采用window.reload(),或者router.go(0)刷新时,整个浏览器进行了重新加载,闪烁,体验感贼不好

3.provide / inject 组合

作用:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。

App.vue:

声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载

4.provide / inject 用法

provide:选项应该是一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。

inject:一个字符串数组,或一个对象,对象的 key 是本地的绑定名

提示:provide 和 inject 绑定并不是可响应的。这是刻意为之的。如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。

vue中实现刷新路由

有时候有这样的场景,需要重新加载当前的页面,但不是像刷新浏览器一样刷新整个网站,那样如果有全局保存的数据(比如vuex的数据,当前页面的路由参数)就会重置,所以需要实现刷新当前路由。

实现先说一个属性: router.replace

replace 和 push 用法基本一样,但不会在浏览器留下 history 记录,就是当你使用 replace 访问的路径,通过浏览器的前进后退按钮都访问不到。

实现的方法有点投机取巧,就是建立一个空页面,通过 router.replace 访问,再从空页面使用 router.replace 跳转回来,达到刷新当前路由的效果。下面是基础实现:

先建立一个组件做空页面, refresh.vue :

通过使用组件的路由前置守卫返回上一个页面,需要注意的是在这个守卫中访问不到 this 实例,需要通过在 next 回调中的参数代表平时的 this 。

再建立这个空页面的路由信息:

最后在你需要刷新路由的组件中的方法中访问该路径即可:

这样算是完成一个乞丐投机取巧版的刷新当前路由,这种方法是有瑕疵的,当刷新的路由带有参数, params 或者 query ,通过这个刷新方式之后参数就会丢失,所以需要将上面的方法加以改造一下,让参数页面的参数保持不变,先从需要刷新路由的组件的方法改造:

这样兼容了路由中带有 params 和 query ,先判断了当前路由是否有 params 属性,如果当前路由没有 params 和 query 属性,默认都是空对象,所以传递一个空对象跟没传是一样的。注意路由跳转传递 params 和 query 的方式不相同,传递 params 时,不能使用路由的 path ,需要用到路由 nam e属性,所以上面分了情况进行跳转。这样跳转到写好的空页面,参数是传递给 refresh 这个路由,所以需要再从这个空页面传递回来,下面是改造后的 refresh 组件:

在这个路由守卫中, to 就代表当前页面,也就是 refresh 组件

改造后这个刷新路由的方式就兼容了路由带有参数的情况,目前超人鸭遇到的需求这种方式已经能满足,如果还有其他情况需要再做处理的,或者有更好的实现方法,欢迎指教哦。

vue-router动态路由添加及路由刷新后消失的解决办法

1、取出非第一级的所有数据

2、映射出所有路由规则

3、添加路由

4、 登录成功后 保存菜单数据,保存后在vuex直接触发添加事件即可 this.commit('add_route')

vue路由传参及解决vue路由传参页面刷新参数丢失问题

Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下:

注意:

以上传参方式基本上可以理解为ajax中的post请求方式,参数都是不可见的,但是该方法有一个弊端,就是当页面刷新后参数值会丢失!!!

以上两种方式是可以解决页面刷新参数消失问题的,query这种方式可以理解为是ajax中的get方法,参数是直接在url后面添加的,参数是可见的。

当多个路由地址对应同一组件时,切换路由组件不刷新的问题

在vue官方文档中进行了如下描述:

解释一下:当我们使用 动态路由 或者在 路由上拼接参数 时,进行页面组件跳转,如果前后跳转都使用了同一个组件,这就导致我们后面的路由跳转会使用前一次组件实例,因此组件不会重新渲染加载

当我们想传递参数后,组件重新渲染组件实例,可以使用vue官方文档提供的方案:

如果我们对"路由变化作出响应是"============== 刷新当前组件的话 :

可以使用: this.$router.go(0)  来刷新当前组件

vue实现多级路由的思维

一级路由包含二级路由再包含更多的子路由,需要缓存的页面用keepalive 包括就OK,但是每次回到上级路由,是否刷新当前页面?

答案是肯定的,从下级路由回到上级,可以用keeplive,直接复用内存里的,不用二次加载。

另外就是keeplive 要在vuerouter标签之外、

二 一个就是要实现多级路由复用一个组件的问题,数据展示页,数据和样式的组合,再被渲染到展示页面。

具体怎么实现不知道,props貌似能做的有限。目前数据是写死的,然后比较简单。这个用什么去搞呢??

所以,挂在路由页面之前,要渲染数据,那么在数据的获取的方式就有很多种,所以需要再考虑一下。

现在希望,进入二级路由之后,页面产生三级路由,三级路由点击之后,还是在二级路由,或者说如何销毁上级路由的内容呢?

vue多级路由刷新问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vue路由局部刷新、vue多级路由刷新问题的信息别忘了在本站进行查找喔。

扫描二维码推送至手机访问。

版权声明:本文由路由设置网发布,如需转载请注明出处。

本文链接:https://www.shoulian.org/luyou/post/10144.html

分享给朋友:

“vue多级路由刷新问题” 的相关文章

家用路由器怎么加密码

家用路由器怎么加密码

今天和朋友们分享家用路由器怎么加密码相关的知识,相信大家通过本文介绍也能对家用路由器怎么加密码进去有自已的收获和理解。自己轻松搞问题。本文内容目录一览:关于家用路由器怎么加密码和家用路由器怎么加密码进去的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关...

路由器应该怎么接端口

路由器应该怎么接端口

针对路由器应该怎么接端口这个问题,本文将综合不同朋友对这个路由器应该怎么接端口设备的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、路由器的网线怎么插?插到哪个接口 2、家里用千兆路由器 网线该怎么接 3、无限路由器后面5个接口怎么接? 4、路由器的口应该怎么接?哪个接LA...

路由器电线应该怎么插

路由器电线应该怎么插

针对路由器电线应该怎么插这个问题,本文将综合不同朋友对这个路由器的网络线怎么插的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、无线路由器后面的线怎么插的? 2、路由器怎么插线 3、wifi路由器怎么插线 4、无线路由器如何插线? 无线路由器后面的线怎么插的? 1、把从光...

路由器上怎么写码

路由器上怎么写码

本篇文章给大家谈谈路由器上怎么写码,以及路由器上面的编码是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文内容目录一览: 1、路由器用手机和电脑写码有什么区别 2、无线路由器上的DNS服务器需要填写,应该写什么码 3、路由器上的宽带密码是sn码 4、路由器上的标签键入PI...

电脑在家怎么安装路由器

电脑在家怎么安装路由器

今天给各位分享电脑在家怎么安装路由器的知识,其中也会对电脑在家怎么安装路由器视频进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站 本文内容目录一览: 1、怎样在自己家里安装路由器? 2、怎样在家里安装wifi? 3、怎样安装路由器详细步骤 4、路由器如何安装设置? 5、家里用...

想要更换路由器怎么设置

想要更换路由器怎么设置

有很多朋友不知道想要更换路由器怎么设置要如何操作,今天为大家整理了很多路由器更换需要怎么设置相关的答案,组成一篇内容丰富的文章,希望能到您 本文内容目录一览: 1、如何更换无线路由器 2、更换一个新的路由器需要怎么设置 3、家里更换新的路由器要怎么操作 如何更换无线路由器 新的无线路由器的...