Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何跨web组件共享库_Reactjs_Material Ui_Custom Element - Fatal编程技术网

Reactjs 如何跨web组件共享库

Reactjs 如何跨web组件共享库,reactjs,material-ui,custom-element,Reactjs,Material Ui,Custom Element,我利用自定义元素启动了一个微型前端项目。 我正在寻找一种在应用程序的所有部分之间共享依赖关系的方法 我想知道如何使用材质ui库来实现这一点。 例如,可以将库附加到窗口对象,并从自定义元素(web组件)内部访问它 我在这里看到的问题是,material ui作为npm模块存在,我还没有找到通过script标记加载它的选项 自定义元素通过 http导入 这意味着它们将在窗口对象填充材质ui库之前加载。我找到了一种共享库的方法,例如ui库,例如材质ui,那就是将它们放在全局范围(窗口对象) 然后,合成

我利用自定义元素启动了一个微型前端项目。 我正在寻找一种在应用程序的所有部分之间共享依赖关系的方法

我想知道如何使用材质ui库来实现这一点。 例如,可以将库附加到窗口对象,并从自定义元素(web组件)内部访问它

我在这里看到的问题是,material ui作为npm模块存在,我还没有找到通过
script
标记加载它的选项

自定义元素通过
http导入

这意味着它们将在
窗口
对象填充
材质ui
库之前加载。

我找到了一种共享库的方法,例如ui库,例如材质ui,那就是将它们放在全局范围(
窗口
对象)

然后,合成层中包含的
web组件(
自定义元素
)可以从从包含它的上下文继承的窗口对象中读取它

当只需要功能时,这种方法可以很容易地使用。对于UI库,其中也有样式,必须注意web组件上是否打开了阴影dom,如果打开了阴影dom,则必须关闭阴影dom

原因是web组件的影子dom样式范围功能,这意味着可以简单地从父级继承样式


这是我去年制作的一个快速示例,现在我刚刚使它再次发挥作用:)

您有这种方法的示例吗?我正试图解决同样的问题。嗨,Umar,我最终开发的解决方案要求在应用程序的不同部分(web组件)使用相同的库。主机应用程序将在
窗口
对象上“发布”所有共享库,web组件可以在其中找到它。然后组件将从那里使用它(对于web组件开发,我有一个本地版本,并且有条件地加载)。谢谢Nemanja。我想知道您如何“将共享库发布到
窗口
对象”。你能提供一个代码示例或一个链接吗?没问题@umarfaroqkhawaja,我正在为你准备一个示例。我希望在下星期初把它准备好。例如,在该示例中,我将材质ui库指定给
窗口
对象。e、 g.
window.mui=materialUi
你真是太好了,Nemanja。这将非常有帮助。明亮的我很期待。