Polymer "reflectToAttribute" 和 "notify" 之间的确切区别是什么?

What is the exact difference between Polymer "reflectToAttribute" and "notify"?

Polymer properties object 支持两个不同的键,我不太明白它们之间的区别,reflectToAttributenotify

reflectToAttribute表示host节点上的属性会随着值的变化而变化

notify 表示它使 属性 可用于双向绑定。

这不是一回事吗?如果您将 notify 设置为 true,那么您是否仍然需要 reflectToAttribute

有人能准确地向我解释一下这些键是如何相互关联的吗?谢谢!

reflectToAttribute就是把属性加到DOM上。这样你就可以将它用作 CSS

中的选择器

notify 正如您在 two-way 绑定问题中提到的那样。

这是两个完全不同的目的。

如果我们“反映”一个 prop,它将出现在该组件的元素标签中:

<component prop></component>

如前所述,我们可以使用该属性的存在来在我们的样式部分中有条件地设置组件样式::host([prop]) div { background-color: green }

litElement中,我们简单地在属性定义中写:reflect: true(而不是reflectToAttribute)。

如您所知,如果我们在子 属性 上使用 notify: true,那么其值的变化也会发生在其对应的父 属性 中(2 向绑定)。

litElement 中,notify 不存在。相反,要将信息传递回父级,您可以在子级中调度自定义事件并在父级中监听它。

在 Polymer 中,我最初认为为了通知父级更改,我们必须将 prop 反映为属性,但事实并非如此。