本文共 1151 字,大约阅读时间需要 3 分钟。
出现这种情况是因为依赖路由的params参数获取写在created生命周期里面,因为相同路由二次甚至多次加载的关系 没有达到监听,退出页面再进入另一个文章页面并不会运行created组件生命周期,导致文章数据还是第一次进入的数据。
解决方法:watch监听路由是否变化watch: { // 方法1 '$route': function (to, from) { // 监听路由是否变化 console.log('123456789', to, from) if (this.$route.params.id) { // 判断条件1 判断传递值的变化 // 获取文章数据 GetBuiDiaData(this.$route.params.id).then(response => { this.buildingdata = response.result this.buildingdata[0].buildingTime = this.buildingdata[0].buildingTime.substring(0, 10) this.loadGoodsData = this.buildingdata[0].diagnosis this.firstbuildingName = this.buildingdata[0].buildingName }) GetMonitorData(this.$route.params.id).then(response => { this.loadGoodsData1 = response.result for (let i = 0; i < this.loadGoodsData1.length; i += 1) { this.loadGoodsData1[i].createTime = this.loadGoodsData1[i].createTime.substring(0, 10) } }) } } //方法2 '$route'(to, from) { if (to.path == "/page") { /// 判断条件2 监听路由名 监听你从什么路由跳转过来的 this.message = this.$route.query.msg } } }
watch监听到路由变化后,再从后台获取数据,这样就解决路由刷新,路径不跳转的问题了。
转载地址:http://kmlbi.baihongyu.com/