解决vue多个路由共用一个页面的问题

下面我就为大家分享一篇解决vue多个路由共用一个页面的问题,具有很好的参考价值,希望对大家有所帮助。

在日常的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(),否则路由是不会生效的。 }}

登录后复制

每当路由发生变化的时候上面的函数都会被触发,我们可以在这个函数中对页面的数据进行重新加载的操作。如果页面结构变化很大,还是建议单独新建一个不同的页面。

立即学习“前端免费学习笔记(深入)”;

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JS中用EL表达式获取上下文参数值的方法

JS实现左边列表移到到右边列表功能

js中el表达式的使用和非空判断方法

以上就是解决vue多个路由共用一个页面的问题的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2753343.html

(0)
上一篇 2025年3月8日 06:36:20
下一篇 2025年3月6日 10:17:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论