有什么方法可以在 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>
目前我有两个共享大量数据的 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>