如何在普通网站的多个地方使用React

jon*_*bbs 5 javascript reactjs react-dom

我有一个新网站,它不是单页应用程序,而是服务器呈现的网站(使用Umbraco CMS的ASP.NET)。我曾经在我的网站上使用过Angular 1.x,这很容易,因为您只需使用脚本标签将其加载,并且代码是未编译的。

我最近在SPA中一直使用React,它以create-react-app开头,该应用会为您照顾webpack,babel等并生成一个捆绑包。但是,我想在网站的多个位置使用React,例如主标题/菜单,联系表格等,因此产生多个捆绑软件是有意义的,尽管这些捆绑软件可以共享导入(Moment.js,Formik等)。

React网站上有说明,显示了如何包括一个脚本并将其附加到您网站中的元素,但没有复杂的示例。

因此,我该如何设置可以转换所有内容而不复制捆绑中的代码的东西。我是否需要在所有页面上加载某种主捆绑软件,并需要单独的捆绑软件来处理联系表格?

其次,我该如何连接所有东西?在SPA中,您只有一个根节点,并使用react-dom将您的应用程序绑定到该根节点,但是,如果您的应用程序中散布了微型的React功能,那么您是否需要某种主脚本来将所有内容绑定到正确的元素?

任何帮助将不胜感激,即使只是将我引向某种样板项目的方向。

哦,我对服务器端渲染的Next JS应用或类似的东西不感兴趣,我认为这可能太复杂而无法与CMS集成。

Sag*_*b.g 2

如果您想root在 React 应用程序的元素“外部”渲染元素,那么您可以使用React Portals。我们也在使用这种方法,而且进展顺利。

如果您仍然认为需要在同一页面上运行多个迷你 React 应用程序,您可以借助ReactDOM.render. 基本上,ReactDOM.render可以被多次调用,它不会重新安装整个应用程序,而是会触发更新和差异到反应树(与render组件的正常方法相同)。

事实上,我写了一篇文章,其中包含有关如何将 React 与其他应用程序和框架集成的教程。

我还尝试用codesandbox示例来模拟这种方法

希望有帮助。