首页 > 解决方案 > 为什么watcher会触发两次?

问题描述

我正在使用 vue-material.io,尤其是日期选择器。

但是我在状态观察中遇到了问题。

观察者触发两次。这是一个包错误还是 vue 的本质?

如何重现:

尝试选择一个日期并查看控制台。

您可以看到它意外触发两次。

https://codesandbox.io/s/vue-material-basic-example-hxzwp

标签: javascriptvue.js

解决方案


我认为这与组件内的观察者有关。如果您通过单击更改日期,它会设置数据并发出它。然后内部观察者启动并通过格式化数据来更改数据并再次发出值。这样你的观察者就会被触发两次。

这种行为可能会让人感到奇怪,但这是正确的。

如果您愿意,可以在此处查看源代码: https ://github.com/vuematerial/vue-material/blob/dev/src/components/MdDatepicker/MdDatepicker.vue


推荐阅读