首先,刚开始肯定大家都会想到,我们可以通过拼接地址,利用URL的属性,动态获取路由的query值或者parmas值,通过获取页面跳转路由ID参数实时更新数据,但是这只是适合于小型项目;其实我们可以完整的利用vue的生命周期,created,用watch侦听获取实时数据的参数ID,之后通过created同步获取更新上个页面的数据变化;
点击用户头像 => 进入用户个人中心,在用户个人中心里点击其他用户的头像,我希望显示被点击用户的个人中心,但只看到了路由参数在发生变化,页面内容并没有更新。如图:
页面代码如下:
<script>
export default {
data() {
return {
data: {}
}
},
methods: {
fetchDate() {
// 使用 axios获取数据
......
},
created() {
this.fetchDate();
}
}
</script>
解决办法:
使用 watch,观察路由,一旦发生变化便重新获取数据!
<script>
export default {
data() {
return {
data: {}
}
},
methods: {
fetchDate() {
// 使用 axios获取数据
......
},
created() {
// 组件创建完后获取数据,
// 此时 data 已经被 observed 了
this.fetchDate();
},
watch: {
// 如果路由有变化,会再次执行该方法
"$route": "fetchDate"
}
}
</script>
以下这是更新后的结果,可以尝试下哦!毕竟比传统的通过获取URL的方法好很多,好的项目是一步一步走出来的哦!
以上博文整理自博客Fayin;欢迎大家提意见;