Vue同一路由跳转页面不刷新解决方案及注意事项之二
Vue同一路由跳转页面不刷新解决方案及注意事项之二
之前写过一个《Vue同一路由跳转页面不刷新解决方案及注意事项》,在这篇文章里面鞋到了怎么解决这个问题,具体内容可以点击查看,这里简单说一下,就是利用将时间戳传给路由的query,也就导致$route.fullPath
不一样,然后配合key
来解决。同时也提到了这样做的缺陷,缺点就是组件内的路有生命周期beforeRouteLeave
不执行了,我们通常在这个周期里面做一些例如编辑文章时突然要跳走,可以来提示是否保存草稿的事情。
其实我们看官网可以发现其实Vue官方是在vue-rroute2.2版本中引入的 beforeRouteUpdate
,这个钩子的。
还是在之前的代码中进行测试,我们从/goNext跳转到/goBack页面。
这时肯定没有问题,goNext里面的beforeRouteLeave
周期是会执行的, beforeRouteUpdate
是没有的。
现在我们从/goNext跳转到/goNext?ts=12123323232页面。
和之前测试的一样,
beforeRouteLeave
周期没有执行的, 但是beforeRouteUpdate
执行了,我们之前需要的比如跳转前提示保存草稿场景中,我们原本写在beforeRouteLeave
周期里面的代码就可以在beforeRouteUpdate
再写一份了,这样的话就能达到保证给予跳转前提示的作用了,并且这两个钩子只会执行一个,这样我们也不用自行区分了,是不是很棒,感谢Vue官方。
- 分类:
- Web前端
相关文章
vue发送请求是应该在mounted还是在created生命周期
一个经常会被问到的问题: 为什么不在 created 里去发ajax? created 可是比 mounted 更早调用啊,更早调用意味着更早返回结果,那样性能不是更高? 首先,一 阅读更多…
项目Vue转成React hooks可能存在的问题--急需类似setState回调
假设在Vue中有如下三个方法,并且初始时 this.a = ‘a’; this.b = ‘b’; funA() { this.a = '1221 阅读更多…
vue实现自定义组件的v-model双向数据绑定
一般来说我们用v-model是在input中 常见用法如下 <input type="text" v-model="username"> 用户名:{{username}} 其 阅读更多…
从vuecli3学习webpack记录(零)整体流程
今天看了下自己之前写的从vuecli3学习webpack记录系列,感觉自己居然没有在一开始的时候把vuecli的 npm run serve 的整体流程在一篇文章里面完整的讲完,可能是因为打字打的手 阅读更多…
vue内置组件keep-alive源码解析
很简单,我们直接看vue的源码即可。 keep-alive 组件支持三个属性。 props: { include: patternTypes, exclude: patter 阅读更多…
命令式组件Message、Dialog的主流写法分析
这里还是以element-ui为例,那我们就看看里面的Message。 它的dom结构什么的就写在node-modules/element-ui/packages/notification/src/ 阅读更多…