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

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

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

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

本文内容目录一览:

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、小米路由器如何设置 2、小米路由器所有连接都好像可以了,就是上不了网,一上网就弹出要诊断,诊断过了却显示正常,有没有人也有 3、小米路由器设置...

tp路由器怎么重启设置

tp路由器怎么重启设置

有很多朋友不知道tp路由器怎么重启设置要如何操作,今天为大家整理了很多TP路由器如何重启相关的答案,组成一篇内容丰富的文章,希望能到您 本文内容目录一览: 1、tplink路由器怎么重新设置 2、tp路由器重置如何重新设置 3、重新设置tplink路由器步骤 重启路由器的方法 4、Tp路...

路由器只用WiFi怎么连

路由器只用WiFi怎么连

针对路由器只用WiFi怎么连这个问题,本文将综合不同朋友对这个只有路由器怎么连接wifi的知识为大家一起来解答,希望能帮到大家 本文内容目录一览:关于路由器只用WiFi怎么连和只有路由器怎么连接wifi的文章,就是上面的全部内容了,不知道有没有是您需要的内容。如果可以帮到您,记得收藏本站...

路由器怎么还正常呢

路由器怎么还正常呢

有很多朋友不知道路由器怎么还正常呢要如何操作,今天为大家整理了很多路由器!怎么回事相关的答案,组成一篇内容丰富的文章,希望能到您 本文内容目录一览: 1、路由器正常,但是电脑连不上网怎么回事? 2、路由器可以正常使用但是电脑连不上网怎么回事? 3、路由器什么的一切正常但是不能上网是怎么回事...

路由器怎么接入区域网

路由器怎么接入区域网

针对路由器怎么接入区域网这个问题,本文将综合不同朋友对这个路由器区域网怎么设置的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、用路由器怎么设置局域网? 2、路由器怎么样去设定区域网? 3、区域网如何接入无线路由器 用路由器怎么设置局域网? 用路由器设置局域网方法:1   选...