解决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 相关文章推荐
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
Jul 26 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
bootstrap输入框组使用方法
Feb 07 Javascript
js实现文字无缝向上滚动
Feb 16 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 Javascript
js布局实现单选按钮控件
Jan 17 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 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 self,$this,const,static,->的使用
2009/10/22 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
javascript深入理解js闭包
2010/07/03 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
django连接oracle时setting 配置方法
2019/08/29 Python
python验证码图片处理(二值化)
2019/11/01 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Django数据库操作之save与update的使用
2020/04/01 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
初中班主任评语
2014/04/24 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
python源码剖析之PyObject详解
2021/05/18 Python
win10清理dns缓存
2022/04/19 数码科技
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技