当前位置: 首页 > Web前端 > vue.js

多个vue路由使用同一个组件页面

时间:2023-03-31 23:30:13 vue.js

在项目中,会有多个路由共享一个页面组件,比如添加&编辑页面,基本相同,只是数据结构不同。这时候新建一条路线,编辑一条路线。可以使用同一个页面组件,但是有一个问题,就是路由切换时,路由发生变化,不会重新触发页面组件的钩子函数(钩子函数只有在切换时才会调用)第一次加载)。这个问题与页面钩子生命周期有关。为了解决重新获取数据的问题,重新加载页面。总结如下解决方法1:Addkeyuniquecontroltorouter-view//在父组件加载路由的地方,添加key方法二:通过监听$route路由//给共享页面组件添加路由监听事件watch:{'$route':function(to,from){if(to==="/create"){//处理本路由下的数据}elseif(to==="/update"){//处理本路由下的数据}},},方法三:通过添加中间页面处理跳转方法empty.vue:{init(){//更新和创建路由都指向同一个组件letid=this.$route.query.idif(id){//编辑this.$router.replace({path:"/update",query:{id,id}})}else{//添加this.$router.replace({path:"/create"})}},}