Javascript 如何在聚合物中创建静态对象

Javascript 如何在聚合物中创建静态对象,javascript,polymer,web-component,polymer-2.0,Javascript,Polymer,Web Component,Polymer 2.0,我有以下用例 我的web项目中的根文件是index.html。我想创建一个存储用户信息的对象,这样就可以从项目中的任何聚合web组件访问它,而不必显式地将它传递给任何web组件。这能做到吗?这类似于许多面向对象编程语言的Singleton方法。 多谢各位 如果您希望任何/所有组件能够访问相同的数据,则必须将其设置为全局: window.myData = {}; 但这在很多层面上都是个糟糕的主意。 这会将所有组件绑定到此数据结构和位置。除非他们愿意管理完全相同的数据结构,否则任何其他人和其他应用

我有以下用例

我的web项目中的根文件是
index.html
。我想创建一个存储用户信息的对象,这样就可以从项目中的任何聚合web组件访问它,而不必显式地将它传递给任何web组件。这能做到吗?这类似于许多面向对象编程语言的
Singleton
方法。
多谢各位

如果您希望任何/所有组件能够访问相同的数据,则必须将其设置为全局:

window.myData = {};
但这在很多层面上都是个糟糕的主意。

这会将所有组件绑定到此数据结构和位置。除非他们愿意管理完全相同的数据结构,否则任何其他人和其他应用程序都不能使用这些组件

相反,您需要将所需的数据传递到每个组件中。是的,这是更多的工作,但它允许组件在任何地方使用

如果组件在每种情况下每次都需要获得精确的相同数据,那么您可以让组件收集数据


如果数据需要能够来自不同的端点(基于应用程序),那么您需要为组件提供定义其URL的能力。这很像
属性。确保
属性或属性告诉标记从何处获取图像数据。

iron meta元素就是为此而设计的,但该元素基本上只是将内容保存到内存中。只需看看元素的作用:

因此,我将继续执行已经提出的解决方案:

 window.myData = {};

这不是一个有效的问题。这是可以做到的,但希望看到您的尝试,以便我们能够以正确的方式指导您。对于这类问题,redux是一个非常流行的选择。。
 window.myData = {};