重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍如何解决vue跳转同一个组件,参数不同,页面接收值只接收一次的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及岗亭等,在成都网站建设、成都营销网站建设、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
作为vue的初用者,你可能会像我一样遇到一个问题,对跳转组件是,我们想通过参数不同,调用不同的方法。
例如:
app.vue
app…vue中的data数据:
goods:[ {name:'女装',link:'goods'}, {name:'男装',link:'goods'}, ]
在goods.vue中接受数据
mounted(){ this.stri=this.$route.query.type; }
当我循环输出这些链接,每个链接的地址都是一样的。参数不一样,当我们点击我们的按钮时
我们只会看到导航栏中的参数在变化,然而我们页面中的数并没有变化。这是为什么呢?
相信很多朋友也已经知道了,这是因为跳转同一个组件,这个组件在第一次,会执行组件的生命周期中的步骤,但是第二次再跳转该组件的时候,组件会被重用,所以不会再执行生命周期中的某些过程,同样mount也不会执行,也就是说,不会执行第二次赋值。
那我们应该怎么获取值呢?
这里有一个方法:
goods.vue
beforeRouteUpdate(to,from,next){ this.stri=to.query.type; next(); }
beforeRouteUpdate的作用就是监听在当前路由改变,但是该组件被复用时调用
这就是我们所需要的东西了。路由的地址变化了,组件也被复用了。
同样的我能还可以使用另一种监听路由变化的方法:
watch:{ '$route'(to,from){ this.stri=to.query.type } },
这个方法,和上面的beforeRouteUpdate起到一样的效果。
如果你遇到的问题,和我所遇到的一样,那么恭喜你,你也解决了这个问题。
以上是“如何解决vue跳转同一个组件,参数不同,页面接收值只接收一次的问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!