解决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 相关文章推荐
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
JavaScript动态插入script的基本思路及实现函数
Nov 11 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
JS无缝滚动效果实现方法分析
Dec 21 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
Sep 11 Javascript
javascript实现雪花飘落效果
Aug 19 Javascript
JavaScript实现刮刮乐效果
Nov 01 Javascript
JS前端基于canvas给图片添加水印
Nov 11 Javascript
原生js实现自定义消息提示框
Nov 19 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
请离开include_once和require_once
2013/07/18 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
python安装twisted的问题解析
2018/08/21 Python
对Python w和w+权限的区别详解
2019/01/23 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
基于python操作ES实例详解
2019/11/16 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
python异步Web框架sanic的实现
2020/04/27 Python
python logging模块的使用
2020/09/07 Python
python实现人工蜂群算法
2020/09/18 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
给同事的道歉信
2014/01/11 职场文书
个人欠款担保书
2014/05/20 职场文书