解决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 相关文章推荐
跨浏览器的事件对象介绍
Jun 27 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
Jan 10 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
Nov 19 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
ES6中的数组扩展方法
Aug 26 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
Aug 07 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 Javascript
微信小程序扫描二维码获取信息实例详解
May 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
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
Python中List.count()方法的使用教程
2015/05/20 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
python使用opencv读取图片的实例
2017/08/17 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
python绘制随机网络图形示例
2019/11/21 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
波兰补充商店:Muscle Power
2018/10/29 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
十佳好少年事迹材料
2014/08/21 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书