为什么观察者触发两次?

men*_*ng3 5 javascript vue.js

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

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

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

如何重现:

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

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

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

Key*_*nja 1

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

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

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