解决vue多个路由共用一个页面的问题


Posted in Javascript onMarch 12, 2018

在日常的vue开发中我们可能会遇见多个路由需要共用一个页面的需求,特别是当路由是通过动态添加的,不同的路由展示的东西只是数据不同其他没有变化。例如:

let routes = [
  {path:"/zhanshan",
  components:Person,
  },
  {path:"/lisi",
  components:Person,
  },
  {path:"/wangwu",
  components:Person,
  }
]

这种情况的时候,我们发现,其实我们的页面在第一次加载成功后就不会再加载了。所以页面一直显示第一次加载的数据,给人的赶脚好像路由没有生效,而我们通过观察浏览器地址栏中的变化可以确定的是这和路由没关系,这对刚刚开始使用的vue的同学可能会产生一点点困扰,其实这和页面的声明周期是相关的,这种情况出现的原因是因为页面在加载后他的大多数钩子函数(mounted,computed…)就不会再次出发了,所以导致页面感觉没有跳转。

一道这种业务需求其实也比较好处理,其实我们不需要页面切换,我们只需要页面中的数据发生改变就好了,我们可以在页面中监听路由地址的变化,当地址变化的时候,我们就重新加载数据。

watch:{
 "$route":function(to,from){
   //from 对象中包含当前地址
   //to 对象中包含目标地址
   //其实还有一个next参数的,这个参数是控制路由是否跳转的,如果没写,可以不用写next()来代表允许路由跳转,如果写了就必须写next(),否则路由是不会生效的。
 }
}

每当路由发生变化的时候上面的函数都会被触发,我们可以在这个函数中对页面的数据进行重新加载的操作。如果页面结构变化很大,还是建议单独新建一个不同的页面。

上面的问题可能对新入门vue的朋友有用,对vue比较了解了的朋友请绕过。

这篇解决vue多个路由共用一个页面的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
javascript级联下拉列表实例代码(自写)
May 10 Javascript
用unescape反编码得出汉字示例
Apr 24 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
JS+CSS实现仿msn风格选项卡效果代码
Oct 22 Javascript
超精准的javascript验证身份证号的具体实现方法
Nov 18 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
JavaScript解析JSON数据示例
Jul 16 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 Javascript
angular5 httpclient的示例实战
Mar 12 #Javascript
vue 简单自动补全的输入框的示例
Mar 12 #Javascript
webpack打包js的方法
Mar 12 #Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 #Javascript
vue路由懒加载的实现方法
Mar 12 #Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 #Javascript
详解vuex的简单使用
Mar 12 #Javascript
You might like
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
puppeteer实现html截图的示例代码
2019/01/10 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
ansible作为python模块库使用的方法实例
2017/01/17 Python
详解supervisor使用教程
2017/11/21 Python
python实现电子书翻页小程序
2019/07/23 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
机关副主任个人四风问题整改措施
2014/09/26 职场文书
师德师风整改措施
2014/10/24 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
政府会议通知范文
2015/04/15 职场文书
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫