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