vue动态路由:路由参数改变,视图不更新问题的解决


Posted in Javascript onNovember 05, 2019

问题描述:

使用vue动态路由(“/route/:id” 形式) 传参的时候,修改页面参数,但是视图仍旧是之前的内容,没有进行刷新,示例如下:

vue动态路由:路由参数改变,视图不更新问题的解决

原因分析:

具体原因在vue官方文档:响应路由参数的变化一节中有讲过:

当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。

复用组件时,想对路由参数的变化作出响应的话,你可以简单地 watch (监测变化) $route 对象

(摘自vue文档)

解决办法:

方法一: watch (监测变化) $route 对象

watch: {
  '$route' (to, from) {
   // 监听路由的变化,做你想做的一些事情...
   // this.init()
  }
},

方法二:使用 vue-router 2.2 中引入的 beforeRouteUpdate 导航守卫:

export default {
 data () {
  return {
   errCode: '',
   info: {}
  }
 },
 beforeRouteUpdate (to, from, next) {
  // 做一些想要做的处理...
  // this.errCode = to.params.code
  // this.info = formatErrorMsg(this.errCode)
  next() // 一定要有next
 },
 // ...
}

方法二中需要注意的是,一定要有next()

以上这篇vue动态路由:路由参数改变,视图不更新问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 Javascript
extjs render 用法介绍
Sep 11 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
Nov 01 Javascript
浅谈JavaScript Date日期和时间对象
Dec 29 Javascript
JavaScript制作windows经典扫雷小游戏
Mar 31 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
Aug 06 Javascript
Angular2安装angular-cli
May 21 Javascript
JS面向对象的程序设计相关知识小结
May 26 Javascript
js中对象与对象创建方法的各种方法
Feb 27 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
javascript实现blob加密视频源地址的方法
Aug 08 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 #Javascript
vue 实现路由跳转时更改页面title
Nov 05 #Javascript
Node.js开发之套接字(socket)编程入门示例
Nov 05 #Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
Nov 05 #Javascript
node.js域名解析实现方法详解
Nov 05 #Javascript
node.js文件操作系统实例详解
Nov 05 #Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 #Javascript
You might like
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP session有效期问题
2009/04/26 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
Laravel实现表单提交
2017/05/07 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
javascript this详细介绍
2016/09/19 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python and、or以及and-or语法总结
2015/04/14 Python
Python argv用法详解
2016/01/08 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
Java语言的优势
2015/01/10 面试题
主持人演讲稿
2014/05/13 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书