解决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 相关文章推荐
做网页的一些技巧(续)
Feb 01 Javascript
TypeScript具有的几个不同特质
Apr 07 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
Jan 17 Javascript
VUE element-ui 写个复用Table组件的示例代码
Nov 18 Javascript
three.js中文文档学习之通过模块导入
Nov 20 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
JS监听事件的叠加和移除功能
Nov 19 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
May 10 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
Echarts.js无法引入问题解决方案
Oct 30 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
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 中的一些经验积累
2006/10/09 PHP
php UTF8 文件的签名问题
2009/10/30 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
pandas实现选取特定索引的行
2018/04/20 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
自动化专业毕业生自荐信
2013/11/01 职场文书
销售部主管岗位职责
2013/12/18 职场文书
初三学习决心书
2014/03/11 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
项目投资合作意向书
2014/07/29 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
贫困生证明范文
2015/06/16 职场文书
老干部座谈会主持词
2015/07/03 职场文书
新郎新娘致辞
2015/07/31 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
详解Redis复制原理
2021/06/04 Redis
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫