解决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插件源码
Jun 24 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
javascript实现表格排序 编辑 拖拽 缩放
Jan 02 Javascript
jQuery的one()方法用法实例
Jan 19 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
RequireJS入门一之实现第一个例子
Sep 30 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
Aug 28 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
Mar 09 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
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的简单采集数据入库程序
2014/07/30 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
基于php实现的验证码小程序
2016/12/13 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
python中lambda与def用法对比实例分析
2015/04/30 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
公司门卫管理制度
2014/02/01 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
图书馆义工感想
2015/08/07 职场文书
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers