vue监听路由变化的几种方式小结
作者:star-1331 发布时间:2024-05-21 10:28:41
标签:vue,监听,路由
监听路由变化的几种方式小结
vue页面开发中,我们经常需要根据路由的变化去实现一些操作,那么如何监听路由的变化呢?当然是利用VUE中的watch,请看代码。
一、监听路由从哪儿来到哪儿去
watch:{
?? ?$route(to,from){
?? ? ?console.log(from.path);//从哪来
?? ? ?console.log(to.path);//到哪去
?? ?}
}
二、监听路由变化获取新老路由信息
?watch:{
? ? $route:{
? ? ? handler(val,oldval){
? ? ? ? console.log(val);//新路由信息
? ? ? ? console.log(oldval);//老路由信息
? ? ? },
? ? ? // 深度观察监听
? ? ? deep: true
? ? }
? }
三、监听路由变化触发方法
methods:{
? getPath(){
? ? console.log(1111)
? }
},
watch:{
? '$route':'getPath'
}
四、全局监听路由
在app.vue的create种加入下面代码,然后进行判断
this.$router.beforeEach((to, from, next) => {
? ? console.log(to);
? ? next();
});
如何在组件中监听路由参数的变化?
当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。
因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。
那如果我们要在组件中监听路由参数的变化,就只能通过watch (监测变化) $route 对象,或使用 beforeRouteUpdate 的组件内守卫。
方式一: 监听 $route
const User = {
? template: '...',
? watch: {
? ? $route(to, from) {
? ? ? // 对路由变化作出响应...
? ? }
? }
}
方式二:通过组件内的导航守卫
beforeRouteUpdate ,(和created(){}生命周期函数同级别)
const User = {
? template: '...',
? beforeRouteUpdate(to, from, next) {
? ? // react to route changes...
? ? // don't forget to call next()
? }
}
来源:https://blog.csdn.net/weixin_40970987/article/details/82420390


猜你喜欢
- 本文实例讲述了彻底删除thinkphp3.1案例blog标签的方法。分享给大家供大家参考。具体方法如下:thinkphp3.1框架中的案例b
- 啥都不说了,直接奉献原代码 代码如下:'==========注意==================================
- JavaScript中对象的property有三个属性:1.writable。该property是否可写。2.enumerable。当使用f
- torch.Tensor类型的数据loss和acc打印时如果写成以下写法print('batch_loss: '+str(l
- 1. ES6的新特性 允许将对象或者数组'分解'成多个单独的值, 以对象的解构开始. &
- 前言学习Python的初衷是因为它的实践的便捷性,几乎计算机上能完成的各种操作都能在Python上找到解决途径。平时工作需要在线学习。而在线
- 图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E
- 当使用PHP在MySQL中编写查询时,它的适用性将基于MySQL本身进行检查。所以使用MySQL提供的默认日期和时间格式,即'YYY
- 网上大部分教程都写的直接关闭界面,我摸索出来一个方法:同时绑定两个事件例:#自己方法self.registerButton.clicked.
- IE 的 Cookie 文件保存在 ?:\Documents and Settings\<user>\Cookies 目录,后缀
- Python是当今日趋流行的一种脚本语言,它比Java更简单,比php更强大,并且还适用于做桌面应用的开发,在ubuntu中,更加是必须的一
- 1、启动SQL Server Management Studio,以Windows身份验证方式登录。2、在对象资源管理器窗口中,右键单击服务
- 有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错
- 安装一些必要的环境1.下载go sdk (本人装的是1.9) 2.下载golang3.下载git 因为有些依赖 要用 go get 去git
- 本文实例讲述了Python时间和字符串转换操作。分享给大家供大家参考,具体如下:例子:#!/usr/bin/python# -*- codi
- 引言在观察MySQL本地连接的时候,发现对mysql.sock是个啥我不明白,于是我提出了一个问题:mysql.sock到底存了什么信息?根
- 在服务器部署时,往往都是在后台运行。当程序发生特定的错误时,我希望能够在日志中查询。因此这里熟悉以下 logging 模块的用法。loggi
- tornado中的协程是如何工作的协程定义Coroutines are computer program components that g
- 目录图片验证码登陆点击个人用户登录获取图片验证码识别并登陆识别较复杂验证码算法其他上一篇介绍了使用python模拟登陆网站,但是登陆的网站都
- WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。