2020-12-18 20:15:14
Vue2.0 中使用 watch 观察 prop 变化不触发的原因是,默认情况下,Vue 不允许直接修改 prop,因此当 prop 被父组件更新时,不会触发子组件中的 watch 监听器。
为了正确地在子组件中观察 prop 的变化,你可以采取以下几种方法:
使用计算属性:
在父组件中监听变化,并通过事件通知子组件:
使用 .sync 修饰符或 vmodel:
在子组件中定义一个本地数据属性,并在 watch 中监听 prop,然后同步更新本地数据:
重点内容:在 Vue2.0 中,由于 prop 是单向数据流的一部分,直接修改 prop 是不被推荐的。因此,当 prop 变化时,Vue 默认不会触发子组件中的 watch 监听器。为了处理这种情况,你可以考虑使用上述提到的方法之一。