vue-router路由刷新问题

时间:2017年11月13日分类:Javascript

在vue的开发过程中发现,例如http://localhost:8088/#/project/1349076422562597854中project/后面id改变时,不会触发页面数据请求,经过查阅资料发现,我理解的原因是,没有对路由做监听引起的

参考了网上的一些解决方案,有两种:

1,把获取数据的步骤定义到一个方法里面,然后watch监听路由变化 
watch: {
   '$route' (to, from) {
     // 获取最新的id 调用获取数据方法
     this.getData(传入id)
   }
}

官方文档上,还提供了除我上面提到的另外一种解决思路 router.vuejs.org/zh-cn/

2,直接监听路由是否变化
<router-view :key="key"></router-view>
computed: {
   key() {
       return this.$route.name !== undefined? this.$route.name + +new Date(): this.$route + +new Date()
   }
}

这种方法我个人觉得对于嵌套了多个子组件时还挺管用的,但是这样处理之后的结果是:每次改变都会触发当前路由下所有数据更新(有些数据不需要再次向后台请求) ,导致http请求增多,增加了后台服务压力。

所以,还是需要看具体的业务场景了。

 

  • 查看[1068]
  • |
  • 评论[0]

相关标签

javascript vue2.0

0条评论

发表你的评论

回到顶部