聚合物中的观察者和听者之间有什么区别?

What's the differences between observers and listeners in polymer?

如果我设置 属性 如下:

properties: {
    myProp: {
        type: Object,
        notify: true,
        observer: '_onChangedByObserver',
    }
},
listeners: {
    'my-prop-changed': '_onChangedByListener'
}

当我 运行 代码时,只要 myProp 发生变化,_onChangedByObserver_onChangedByListener 都会被调用。

那么如何确定使用哪个呢?

ps:我想说说变化是来自外部消费者还是内部赋值。我该怎么办?

谢谢!!

当 属性 的值改变时调用观察者。 Listeneres 是所有类型事件的事件处理程序,而不仅仅是 属性 更改。对于观察者工作,你不需要设置 notify: true,如果你想在 属性 变化时调用监听器,这是必要的。方法签名也不同。观察者获得新值和旧值的传递,而侦听者在详细信息字段中获得具有新值的事件。

我不认为有什么方法可以说明导致这两种情况发生变化的原因。