this.$router.push()跳转页面不刷新 (分页组件点击,query参数变化)
this.$router.push()跳转页面不刷新问题:我有一个动态路由:/page/:offset?,但是我用query传参的时候,页面却不刷新,
·
this.$router.push()跳转页面不刷新
问题:
- 我有一个动态路由:/page/:offset?,但是我用query传参的时候,是用来点击分页链接进行跳转的,页面却不刷新?
// value值是我点击一个分页传进来的值,点击页数添加,但是页面却没有刷新
this.$router.push('page',query:{offset:value})
原因:
- 我们传入的参数不一样,只是url地址变化了,此时页面没有重新请求数据,需要刷新一下页面才有新的数据加载,
- 页面为什么没有重新请求数据的原因:当我们请求page/?offset=1,page/offset=2,page/offset=3…等链接跳转时,页面并没有刷新,也就是页面视图并没有渲染,只是当前组件的操作使得页数更新了,
- 由于Vue会复用相同组件(我们只是在同一个页面进行同一个页面的跳转,只是url的query的参数不同而已)父组件整体没有调用mounted()和create()等钩子函数,数据没有加载,视图也就没有渲染
解决方案
- 可以通过beforeRouteUpdate钩子,this.$nextTick,监控$route等方法来进行跳转以及刷新页面
- 参考(8种解决方式----覆盖所有场景):
https://blog.csdn.net/qq_38143787/article/details/120920610
更多推荐
已为社区贡献4条内容
所有评论(0)