解决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 相关文章推荐
Extjs学习笔记之七 布局
Jan 08 Javascript
图片上传判断及预览脚本的效果实例
Aug 07 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
深入解读JavaScript中的Iterator和for-of循环
Jul 28 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
js基于myFocus实现轮播图效果
Feb 14 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
vue中实现移动端的scroll滚动方法
Mar 03 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 Javascript
15 分钟掌握vue-next响应式原理
Oct 13 Javascript
vue中axios的二次封装实例讲解
Oct 14 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函数 serialize()和unserialize()
2012/02/04 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
阿德的梦教学反思
2014/02/06 职场文书
教师个人鉴定材料
2014/02/08 职场文书
公司新年寄语
2014/04/04 职场文书
感恩之星事迹材料
2014/05/03 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
python小程序之飘落的银杏
2021/04/17 Python
Python利用folium实现地图可视化
2021/05/23 Python
Nginx反向代理配置的全过程记录
2021/06/22 Servers
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server