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

关于路由钩子进入带参数刷新的信息

秋天2023年02月01日 15:16:08wifi设置知识265

今天给各位分享路由钩子进入带参数刷新的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站

本文内容目录一览:

vue 路由四种方式 (带参数)跳转

replace和push区别:

router.push(location) 会向 history 栈添加一个新的记录,当用户点击浏览器后退按钮时,则回到之前的 URL。

router.replace(location) ,replace 属性(默认值: false),它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。

注意:获取路由上面的参数,用的是$route,后面没有r

params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。

params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失。

两者都可以传递参数,区别是什么?

query 传参配置的是path,而params传参配置的是name,在params中配置path无效

query在路由配置不需要设置参数,而params必须设置

query传递的参数会显示在地址栏中

params传参刷新会无效,但是query会保存传递过来的值,刷新不变

路由钩子函数

全局钩子函数:

beforeEach:

beforeEach一共接收三个参数,分别是to、from、next;to:即将进入的路由对象;from:正要离开的路由对象;next:路由的控制参数;

next一共有四种调用方式:

next():一切正常调用这个方法进入下一个钩子;

next(false):取消路由导航,这时的url显示的是正要离开的路由地址;

next('/login'):当前路由被终止,进入一个新的路由导航(路由地址可以自由指定)

next(error):路由导航终止并且错误会被传递到router.onError()注册过的回调中;

我们一般是用全局钩子来控制权限,像什么进页面没有登录就跳登录页,需要用户达到什么级别才能访问当前页面都是属于页面权限控制,都是可以通过beforeEach钩子函数来实现

AfterEach:

AfterEach和beforeEach一样都是属于全局守卫钩子,都是在main.js中进行调用;其中AfterEach比beforeEach少一个next参数;

to:即将要进入的路由对象;

from:正要离开的路由对象;

afterEach()我们一般用来重置页面滚动条位置:

假如我们有一个页面很长,滚动后其中的某个位置后跳转,这时新的页面的滚动条位置就会在上一个页面停留的位置;这个时候我们就可以利用afterEach进行重置:

组件内的钩子函数:

beforeRouteEnter(to,from,next):

在路由进入前调用,因为此时的vue实例还没有创建,所以beforeEnter是唯一一个不能使用this的钩子函数;

to:即将要进入的路由对象;

from:正要离开的路由对象;

next:路由控制参数

beforeRouteUpdate(to,from,next):

在路由发生修改的时候进行调用,比如我们上一篇文章讲到的动态路由传参,这种情况我们的beforeRouteUpdate也是会被调用的;

to:即将要进入的路由对象;

from:正要离开的路由对象;

next:路由控制参数;

beforeRouteLeave(to,from,next):

在路由离开该组件时调用;

to:即将要进入的路由对象;

from:正要离开的路由对象;

next:路由控制参数

注意:beforeRouteEnter因为触发的时候vue实例还没有创建,所以这个钩子函数中不能使用this,而beforeRouteUpdate和beforeRouteLeave都是可以访问到实例的,因为当这两个函数触发的时候实例都已经被创建了;

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 组件

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

路由钩子进入带参数刷新的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、路由钩子进入带参数刷新的信息别忘了在本站进行查找喔。

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

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

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

分享给朋友:

“关于路由钩子进入带参数刷新的信息” 的相关文章

路由器怎么跑苹果手机

路由器怎么跑苹果手机

有很多朋友不知道路由器怎么跑苹果手机要如何操作,今天为大家整理了很多路由器怎么跑苹果手机的网速相关的答案,组成一篇内容丰富的文章,希望能到您 本文内容目录一览: 1、路由器连接iphone热点教程 2、苹果手机怎么设置无线路由器? 3、苹果手机登怎么登路由器? 4、苹果怎么设置路由器...

怎么设置路由器热点吗

怎么设置路由器热点吗

针对怎么设置路由器热点吗这个问题,本文将综合不同朋友对这个路由器的热点怎么设置的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、无线路由器桥接手机热点怎么设置? 2、利用无线路由器设置热点,怎么做? 3、怎么把家里的路由器设置为WIFI热点? 4、怎么在电脑上设置wifi热...

怎么给猫配置路由器

怎么给猫配置路由器

针对怎么给猫配置路由器这个问题,本文将综合不同朋友对这个怎么通过猫设置路由器的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、用光猫怎么设置路由器 2、家里的光猫如何设置路由器? 3、家里装的光猫怎样设置无线路由器 4、连光猫怎么设置路由器 用光猫怎么设置路由器 不少家...

路由器拒绝挖矿怎么设置

路由器拒绝挖矿怎么设置

当朋友们看到这个文章时想必是想要了解路由器拒绝挖矿怎么设置相关的知识,这里同时多从个角度为大家介绍路由器可以挖矿吗相应的内容。 本文内容目录一览: 1、路由器设置页面 拒绝访问 2、路由器挖矿,麻烦帮我看一下怎么弄 3、防火墙怎么配置防挖矿 4、手机显示路由器拒绝请求 怎么解决 5、...

怎么用宽带的路由器

怎么用宽带的路由器

今天给各位分享怎么用宽带的路由器的知识,其中也会对怎么用宽带的路由器设置进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站 本文内容目录一览: 1、新装宽带怎么设置路由器 2、联通宽带怎么连接路由器 3、电信宽带怎么连接路由器? 4、怎么用宽带连接路由器? 5、家里宽带连接上网...

路由器插上了怎么开

路由器插上了怎么开

针对路由器插上了怎么开这个问题,本文将综合不同朋友对这个路由器插上后如何设置的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、我买了一个双频路由器(WiFi),如何启用? 2、怎么开启无线路由器 3、家里有路由器怎么开wifi 我买了一个双频路由器(WiFi),如何启用? 1...