props 因为v-if 导致给子路由传递参数无变化时,导致watch 里的方法不执行的问题

2020-07-10 19:19 2023-12-03 19:01 标签:vue,props,watch

v-if和v-show不能用的太随意,必须要分清什么场合使用
子路由接收父路由传过来的参数,并且监测如果数据变化了执行相应方法
子路由中
props: ['id'],
watch: {
    id: function (val) {   
        this.getWebClass()
    }
}

父路由里,根据路由名称来判断是否显示模块

<v-web-class :id="classId" v-if="routeName=='web' || routeName=='view'"></v-web-class>
这里就遇到了个问题,刷新的时候会执行getWebClass,而且切换路由时并没有执行getWebClass,原因是传给子路由的参数没有变化。

既然没变化,那子路由内容应该和上一次相同,就不能用v-if,必须的用v-show,只是显示隐藏,不能移除子组件
这里还是v-if和v-show用的太随意了,必须要分清什么场合使用



压缩解压