vue中监听路由参数的变化及方法


Posted in Javascript onDecember 06, 2019

在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,期望达到数据的更新。

mounted: () =>{
   this.id = this.$route.query.id;
   this.getdetail()
}

getDetail()方法中会用到this.id这个参数,在同一页面切换id的值,并不会触发vue的声明周期函数。

可以添加路由监听:

watch: {
  $route: {
     handler() {
       this.id = this.$route.query.id;
       this.getDetail();
       //深度监听,同时也可监听到param参数变化
    },
    deep: true,
  }
 }

ps:下面看下vue中监听路由参数变化的方法

在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,如果不监听路由参数值的变化,页面无数据刷新,需手动刷新浏览器,这样做就不是我们的预期效果。

举例:当前路由为  /pjthome?pjtid=123456

mounted: function () {
   this.pjtid = this.$route.query.pjtid
   this.pjtdetail()
},

在页面pjtdetail()方法中,需要用到pjtid这个参数,假如在同一页面有相似项目切换,只是pjtid发生变化,在切换时,并未重新加载数据,原因是跟vue的生命周期有关,具体该解决这个问题,添加路由监听即可。

exp:

watch: {
   $route(){
    this.pjtid = this.$route.query.pjtid
   },
   pjtid() {
    this.pjtdetail()
   },
}

解决。

总结

以上所述是小编给大家介绍的vue中监听路由参数的变化及方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery+json实现的搜索加分页效果
Mar 31 Javascript
jQuery 自动增长的文本输入框实现代码
Apr 02 Javascript
html超链接打开窗口大小的方法
Mar 05 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
Feb 12 Javascript
javascript 获取浏览器版本
Jan 21 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
Aug 28 Javascript
jquery实现简单实用的弹出层效果代码
Oct 15 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
ES6新数据结构Map功能与用法示例
Mar 31 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
Nov 06 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 #Javascript
ES6的异步操作之promise用法和async函数的具体使用
Dec 06 #Javascript
原生JavaScript实现滑动拖动验证的示例代码
Dec 06 #Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 #Javascript
Nuxt v-bind绑定img src不显示的解决
Dec 05 #Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 #Javascript
微信小程序顶部导航栏可滑动并选中放大
Dec 05 #Javascript
You might like
一个php作的文本留言本的例子(一)
2006/10/09 PHP
PHP 数组实例说明
2008/08/18 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
python遍历数组的方法小结
2015/04/30 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python进行参数传递的方法
2020/05/12 Python
如何使用Python调整图像大小
2020/09/26 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
大学校庆策划书
2014/01/31 职场文书
毕业生自荐书
2014/02/02 职场文书
书香家庭事迹材料
2014/05/09 职场文书
小学庆六一活动总结
2014/08/28 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书