有什么方法可以在 Polymer 组件之间共享数据?

Any way to share data between Polymer components?

目前我有两个共享大量数据的 Polymer 组件。你可以在这里看到:

<polymer-component1
      series="{{series}}" 
      stackhelper={{stackhelper}} 
      stack={{stack}}
      controls={{controls}} 
      camera={{camera}} 
      threed={{threed}} 
      scene={{scene}} 
      renderer={{renderer}}>
</polymer-component1>
<polymer-component2 
      stackhelper=[[stackhelper]]
      stack={{stack}} 
      controls={{controls}} 
      camera={{camera}} 
      threed={{threed}} 
      scene={{scene}} 
      renderer={{renderer}}
      guiobjects={{guiobjects}}>
</polymer-component2>

目前一切正常,但共享数据的最佳做法是什么?有什么方法可以在两个组件之间共享所有属性?

在 Polymer 2 中,一个元素可以通过扩展它来继承属性。

class MyElementSubclass extends MyElement {...}

或者您创建一个仅具有两者都需要的属性的元素,然后两个组件都扩展了父元素。您可以找到 here 向下滚动到扩展现有元素

建议通过数据绑定来共享数据,就像你在做的那样。您可以共享任何 属性,而不仅仅是字符串和数字。例如假设你有一个对象

JS

data = {
    series: "",
    stackhelper: "",
    stack: "",
    controls: "",
    camera: "",
    threed: "",
    scene: "",
    renderer: "",
}

你的代码可以这样重写。

HTML

<polymer-component1 data="{{data}}"></polymer-component1>
<polymer-component2 data="{{data}}"></polymer-component2>