Material ui 将材料UI共享到插件

Material ui 将材料UI共享到插件,material-ui,Material Ui,我们正在基于您令人印象深刻的框架创建一个应用程序,我们有加载的插件,目前我们确保不再使用整个Material ui框架构建插件,而是从主应用程序共享实例。我们通过将组件附加到窗口全局对象来实现这一点,以便插件可以引用和使用它们。这确实很有效,但我想知道是否有更好或更正确的解决方案与插件共享整个框架,因为我们需要在需要知道的基础上不断添加组件,当一个新插件需要访问尚未添加到窗口对象的另一个组件时 例如,主应用程序: 窗口['TextField']=TextField 加载并执行插件时,可以使用此引

我们正在基于您令人印象深刻的框架创建一个应用程序,我们有加载的插件,目前我们确保不再使用整个Material ui框架构建插件,而是从主应用程序共享实例。我们通过将组件附加到窗口全局对象来实现这一点,以便插件可以引用和使用它们。这确实很有效,但我想知道是否有更好或更正确的解决方案与插件共享整个框架,因为我们需要在需要知道的基础上不断添加组件,当一个新插件需要访问尚未添加到窗口对象的另一个组件时

例如,主应用程序: 窗口['TextField']=TextField

加载并执行插件时,可以使用此引用创建react组件,例如:

render() {
    const TextField = window['TextField'];
    return <TextField .... />;
}
render(){
const TextField=window['TextField'];
返回;
}
总之,有没有更好的解决方案,或者我们可以迭代整个核心组件,以便将它们全部添加到全局窗口

衷心感谢您的帮助。
Jason

据我所知,您真正想要的是“可重用组件”。对于跨项目使用,您可以尝试以下几点:

  • 将所需组件发布到
    npm
    ,然后在其他项目、软件包等中使用
  • 使用

基本上,其核心思想与使用window变量的方式相同:我们需要一个全局位置来存储可重用的东西。

据我所知,您实际需要的是“可重用组件”。对于跨项目使用,您可以尝试以下几点:

  • 将所需组件发布到
    npm
    ,然后在其他项目、软件包等中使用
  • 使用

基本上,其核心思想与使用window变量的方式相同:我们需要一个全局位置来存储可重用的东西。

这与我的要求不完全一样,可能是我的描述不好,我会尝试更好地解释,我们的产品使用material ui,我们还允许通过我们的程序动态加载自定义插件,这些插件共享material ui,但是不希望在插件本身中直接使用依赖于材质ui的组件构建插件,而是在宿主应用程序本身中使用共享的材质ui组件。基本上不允许同时加载重复组件。哦,我当然愿意提供帮助,但无法找出您的实际问题所在。我的错:(不完全是我所问的,可能是我不好的描述,我会尝试更好地解释它,我们的产品使用material ui,我们也允许通过我们的程序动态加载自定义插件,共享material ui,但不想在插件本身中直接构建包含material ui相关组件的插件,而是使用shared主机应用程序本身的材质ui组件。基本上不允许同时加载重复的组件。哦,我当然愿意提供帮助,但无法发现您的实际问题。我的坏:(